Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Jun 2012 10:09:19 +0100
From:      David Collins <davidcollins001@gmail.com>
To:        Wojciech Puchar <wojtek@wojtek.tensor.gdynia.pl>
Cc:        FreeBSD Questions <freebsd-questions@freebsd.org>, Modulok <modulok@gmail.com>
Subject:   Re: OT: Robotics or embedded or hardware programming... what is this called?
Message-ID:  <CACZHAO0Kw0Wf1pXsK9YL9rPPEbqrpO5zT49m=-pgdAGYiR7GEA@mail.gmail.com>
In-Reply-To: <alpine.BSF.2.00.1206210755110.2867@wojtek.tensor.gdynia.pl>
References:  <CAN2%2BEpZNhPZLGqB1%2BqEG-X8BjAVzrW6ZR6FnLsF=H2oEGVtm4A@mail.gmail.com> <alpine.BSF.2.00.1206210755110.2867@wojtek.tensor.gdynia.pl>

next in thread | previous in thread | raw e-mail | index | archive | help
I have one of these

http://www.nerdkits.com/

They pack everything you need in and a few examples, quite neat but
you need to do some electronics

On 21/06/2012, Wojciech Puchar <wojtek@wojtek.tensor.gdynia.pl> wrote:
>> I want to get started programming for hardware. Motors, sensors,
>> actuators, etc.
>> I have a programming background, (python, PHP, C++) but no experience with
>> code
>> that drives hardware. (Motors, sensors, etc.)
>
> add "--" to your language list so first 2 would disappear and third will
> become C.
>
>> I *don't* want closed-source "kit robots" where the point is to build the
>> robot
>> the book and thats it. I also don't want ladder logic-based PMC's. Some
>> kind of
>> micro-controller that runs a *nix flavor (or a BSD flavor!) would be
>> great! (If
>
> Why do you want something like microcontroller to run any OS?
>> What do you call this? Embedded programming? Generic hardware
>> programming?
>
> running unix on microcontroller-style hardware is what i call nonsense.
>
> Writing your program that runs from first executed instruction is what i
> call normal programming of such devices.
>
> The proper way is to
>
> 1) buy a microcontrooler chip, make your hardware using it, possibly buy
> already made boards. microcontrollers are <1$, some more capable 32-bit
> ones (ARM compatible usually, some are MIPS) for 2-3$.
>
> 2) throw away all included libraries because they are mostly mess.
> prepare something that can be used as crt0.s
> Better write it yourself in assembly. shouldn't be larger than 5
> instructions anyway, a bit more if ARM interrupt vectors are needed to be
> filled.
>
> Some assembly knowledge is very useful, in spite of writing most in C.
>
> 3) read documentation. All embedded devices (like A/D converters, PWM
> generators etc.) are described. With 32-bit micros start from "memory MAP"
> chapter and then device description. You will just find out at what
> address your peripheral is accessible.
>
> 4) lets say for example that 32 GPIO pins are accessible at address
> 0x40001000 for setting ports, 0x40002000 for resetting ports, 0x40003000
> for reading out value, and 0x40004000 for setting direction
> (input/output).
>
> #define GPIO0_SET ((int*)0x40001000)
> #define GPIO0_RESET ((int*)0x40002000)
> #define GPIO0_READ ((int*)0x40003000)
> #define GPIO0_DIR ((int*)0x40004000)
>
>
> 5) use it in your program.
>
> *GPIO0_DIR=0xFFFFFFFF; //sets all pins to output
> *GPIO0_SET=0xAAAAAAAA; //sets every other pin to 1
> *GPIO0_RESET=0x55555555; //set the rest to 0
>
>
>
> if you have questions send it privately. microcontrollers are wrong place
> for unix system and it's overcomplexity relatively to the task.
>
> _______________________________________________
> freebsd-questions@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to
> "freebsd-questions-unsubscribe@freebsd.org"
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACZHAO0Kw0Wf1pXsK9YL9rPPEbqrpO5zT49m=-pgdAGYiR7GEA>