Where to place source files for Board, CPU and UART driver

Joel Sherrill joel.sherrill at OARcorp.com
Wed Jul 31 19:46:47 UTC 2013


Look for "include_bsp_HEADERS" in another BSP Makefile.am.
Those files become available as <bsp/XXX.h>.

Similarly include_rtems_HEADERS become available
as <rtems/XXX.h>

Confusing

On 7/31/2013 10:07 AM, Gedare Bloom wrote:
> In brief, the include files are relocated by the build system. The
> magic is in the Makefile.am files, which specify various HEADERS and
> their locations. Probably if you study some of the other BSPs in the
> ARM family you will get some ideas. You will have to look at those
> files to determine how the header is referenced. In general, this
> header situation is troublesome and is being worked on to make
> simpler.
>
> When you change/add headers in Makefile.am you usually have to run
> bootstrap -p i order to regenerate the preinstall.am file, which does
> some of the heavy lifting of copying headers into their respective
> locations in the build tree. It is all a mess.
> -Gedare
>
> On Wed, Jul 31, 2013 at 10:56 AM, R. Diez <rdiezmail-rtems at yahoo.de> wrote:
>> Hi all:
>>
>> I am finding it difficult to choose a place in the source tree for my new .c and .h files. In a previous message in this mailing list, I read that there is some potential confusion between libbsp and libcpu, but I'm not sure what to do now and I need to get further with my particular case.
>>
>> I am developing a Board Support Package for an Arduino Due, which I've placed here on my PC:
>>
>>    c/src/lib/libbsp/arm/arduinodue/
>>
>> The board has an AT91SAM3X8E microcontroller, but the UART driver is probably generic enough for the whole AT91SAM3 family (at least).
>>
>> I tried placing that UART driver here:
>>
>>    c/src/lib/libbsp/arm/shared/include/arm-at91sam3x-uart-regs.h
>>    c/src/lib/libbsp/arm/shared/include/arm-at91sam3x-uart.h
>>    c/src/lib/libbsp/arm/shared/arm-at91sam3x-uart.c
>>
>> This is what the existing driver for an 'arm-pl050' does.
>>
>> However, both the BSP and that driver need a shared header file for the whole AT91SAM3 family, let's call it arm-at91sam3x-defs.h . The question is where that file should go. I tried this path first:
>>
>>    c/src/lib/libbsp/arm/shared/include
>>
>> But the BSP does not reference it. In fact, the only additional include path while building the BSP seems to be:
>>
>>    c/src/lib/libbsp/arm/arduinodue/include
>>
>> I had a look and it does seem that no BSP includes any header files under libbsp/arm/shared , which seems counterintuitive.
>>
>> I tried place the file in that include file directory mentioned about, but that didn't compile (!). I have a question in this area. If you look at this file:
>>
>>    c/src/lib/libbsp/arm/stm32f4/include/rcc.h
>>
>> You'll see the following statement:
>>
>>    #include <bsp/stm32f4.h>
>>
>> However, file stm32f4.h lives here:
>>
>>    c/src/lib/libbsp/arm/stm32f4/include
>>
>> And that path does not end in "bsp/", like in the #include statement above, so I do not understand how the compiler finds that include file.
>>
>> Going back to my Arduino Due USART driver, I think I could add a new AT91SAM3 CPU type under libcpu instead, like this:
>>
>>    c/src/lib/libcpu/arm/at91sam3
>>
>> I am looking at the existing at91rm9200 as an example.
>>
>> The idea is as follows: the Arduino Due is a board, therefore it should have a Board Support Package. That BSP should reference the at91sam3 CPU, which lives under libcpu. I am not sure where to place the UART driver, maybe under libchip instead of under libbsp?
>>
>> What's the best way to do this? I tried to find an example BSP under libbsp that references a CPU under libcpu, but couldn't find a link between any existing BSP and an existing CPU. Or does the user need to specify both a BSP and a CPU when configuring RTEMS?
>>
>> Many thanks in advance,
>>    rdiez
>>
>> _______________________________________________
>> rtems-devel mailing list
>> rtems-devel at rtems.org
>> http://www.rtems.org/mailman/listinfo/rtems-devel
> _______________________________________________
> rtems-devel mailing list
> rtems-devel at rtems.org
> http://www.rtems.org/mailman/listinfo/rtems-devel


-- 
Joel Sherrill, Ph.D.             Director of Research & Development
joel.sherrill at OARcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
Support Available                (256) 722-9985




More information about the devel mailing list