Cortex-M3 support?

Sebastian Huber sebastian.huber at embedded-brains.de
Sun Jul 26 15:08:21 UTC 2009


Hi,

yes, the exception processing is completely different compared to the 
ARMv4 or ARMv5 architecture. The current ARM port is located mainly at 
'cpukit/score/cpu/arm'. I guess that all assembler files under this 
directory are worthless for the Cortex. I would add the Cortex specific 
files to this directory and prefix them with cortex_*. In the general 
CPU files cpu.c, cpu_asm.S, cpu.h and cpu_asm.h we can use conditional 
compilation. I don't know if it is possible to write the NVIC support in 
a BSP independent fashion.

CU

Joel Sherrill wrote:
> Mike Panetta wrote:
>   
>> I have been looking at CVS head and noticed that there is no cortex-m3 support in RTEMS.  Has anyone started work on this?  If yes, is the code available somewhere?  If no, where would one start a port for this ARM core?  It does not seem to quite fit in with the current ARM code in that exception handling is somewhat different...  Would one create a cortex-m3 directory under libcpu/arm,libbsp/arm, etc, or just put the code directly in the respective arm dir for this port?  I don't think adding CPU support for this core would be such a big deal, its just figuring out where to put it... BSP support on the other hand may be another matter...
>>
>>   
>>     
> Sebastian Huber has been reworking the ARM exception code so
> make sure you are on today's head and talking to him.
>
> In general terms, you want to start with the CPU core and
> ignore the peripherals.
>
> + make sure the multilib variant is in the tools
> + make sure the multilib variant is properly supported
>     by cpukit/score/arm and the libnetworking cksum routines.
>
> If you have a non-RTEMS "no OS" arm-elf toolset which can
> produce working executables for you, then you are almost
> ready for a very minimal BSP.
>
> + Use the linker script as base with additions for
>     workspace related symbols
> + Use the crt0.S from it (change call main -> boot_card)
> + implement a polled console using the libgloss support.
> + Use the "dummy idle task clock driver"
>
> At the moment, I think the avr, m32c, adn m32r BSPs are the closest
> examples to this minimal point.
>
> That gives you enough to run tests with no interrupts.
>
> Sebastian will need to step in for exception processing.
>
>   
>> Any help, suggestions on this would be greatly appreciated!
>>
>> Thanks,
>> Mike
>>
>> _______________________________________________
>> rtems-users mailing list
>> rtems-users at rtems.org
>> http://www.rtems.org/mailman/listinfo/rtems-users
>>   
>>     
>
>
>   


-- 
Sebastian Huber, Embedded Brains GmbH

Address : Obere Lagerstr. 30, D-82178 Puchheim, Germany
Phone   : +49 89 18 90 80 79-6
Fax     : +49 89 18 90 80 79-9
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.




More information about the users mailing list