RasPi GPIO driver
Alan Cudmore
alan.cudmore at gmail.com
Mon Oct 21 00:30:14 UTC 2013
Yes, I believe you can mix POSIX and Classic RTEMS threads:
http://www.rtems.com/ml/rtems-users/2013/august/msg00097.html
Alan
On 10/20/2013 6:46 PM, sarraciro wrote:
> sorry ... I forgot..
> Another question is: Can I mix POSIX threads with normal threads??
>
> --
> RC
> Il giorno lun, 21/10/2013 alle 00.19 +0200, sarraciro ha scritto:
>> Hi Alan,
>> yes I've tested it too and work properly...
>> for compile using your rki-project makefile (as starting point) I had to
>> add the POSIX support in the makefile...(RTEMS_HAS_POSIX_API = yes after
>> paths for RTEMS tools and RTEMS BSP).
>> But ... it use posix support ... There is another way?? like ChibiOS ???
>>
>> I've read an article about minimum constrains to compile C code in bare
>> metal OS ...
>> I think the solution is something like this:
>>
>> /* mmio.h - access to MMIO registers */
>>
>> #ifndef MMIO_H
>> #define MMIO_H
>>
>> #include <stdint.h>
>>
>> // write to MMIO register
>> static inline void mmio_write(uint32_t reg, uint32_t data) {
>> uint32_t *ptr = (uint32_t*)reg;
>> asm volatile("str %[data], [%[reg]]"
>> : : [reg]"r"(ptr), [data]"r"(data));
>> }
>>
>> // read from MMIO register
>> static inline uint32_t mmio_read(uint32_t reg) {
>> uint32_t *ptr = (uint32_t*)reg;
>> uint32_t data;
>> asm volatile("ldr %[data], [%[reg]]"
>> : [data]"=r"(data) : [reg]"r"(ptr));
>> return data;
>> }
>>
>> #endif // #ifndef MMIO_H
>>
>> anyone can confirm or disagree with this?
>> The ": :" or ":" are not C operators true?? sounds like C++?
>>
>> --
>> RC (popovich)
>>
>>
>> Il giorno dom, 20/10/2013 alle 18.05 -0400, Alan Cudmore ha scritto:
>>> There is an RTEMS Rpi GPIO driver here:
>>> https://github.com/pficheux/raspberry_pi/tree/master/RTEMS/gpio_driver
>>> I have tested this, and it works.
>>>
>>> Simon, I will definitely check out your driver when you submit it.
>>>
>>> Alan
>>>
>>> On 10/20/2013 5:57 PM, sarraciro wrote:
>>>> Thank you Simon for your prompt reply... sure that I'm interested!
>>>> I'll wait for the patch! but also I'm trying to learn (understand!?!)
>>>> how to write a simple driver for RTEMS... for other future use of a
>>>> custom drivers.
>>>> regards
>>>>
>>>> --
>>>> RC
>>>>
>>>> Il giorno dom, 20/10/2013 alle 21.32 +0000, williamssimonp at gmail.com ha
>>>> scritto:
>>>>> I am testing one as we speak, if you’re interested. Should be ready
>>>>> to submit the patch about mid-week.
>>>>>
>>>>> Regards
>>>>>
>>>>> Simon
>>>>>
>>>>> Sent from Windows Mail
>>>>>
>>>>> From: sarraciro
>>>>> Sent: Sunday, 20 October 2013 22:28
>>>>> To: rtems-users at rtems.org
>>>>>
>>>>> Hi all,
>>>>> I'm trying to write a simple driver to use raspberry pi gpio.
>>>>> I've found some examples for the POSIX approach (& I tried it with
>>>>> success) but I'm more interesting to pure C solution.
>>>>> I read the RTEMS's documentation but it's too general (for my
>>>>> know-how) ... and I've read the BCM2835 datasheet for register
>>>>> addresses ... I understood the relevance to use the pointers for
>>>>> access
>>>>> to the memory...but I'm stucking until now I don't understand how to
>>>>> move on...
>>>>> Any suggestions or lectures for understand how to complete the task?
>>>>> thank you
>>>>> rc
>>>>>
>>>>> _______________________________________________
>>>>> rtems-users mailing list
>>>>> rtems-users at rtems.org
>>>>> http://www.rtems.org/mailman/listinfo/rtems-users
>>>>>
>>>>
>>>> _______________________________________________
>>>> rtems-users mailing list
>>>> rtems-users at rtems.org
>>>> http://www.rtems.org/mailman/listinfo/rtems-users
>>
>>
>> _______________________________________________
>> rtems-users mailing list
>> rtems-users at rtems.org
>> http://www.rtems.org/mailman/listinfo/rtems-users
>
>
> _______________________________________________
> rtems-users mailing list
> rtems-users at rtems.org
> http://www.rtems.org/mailman/listinfo/rtems-users
More information about the users
mailing list