[fpc-pascal] ARM CMSIS support

Marc Santhoff M.Santhoff at web.de
Fri Jan 8 23:58:41 CET 2016


Answering myself here:

On Fr, 2016-01-08 at 23:43 +0100, Marc Santhoff wrote:
> On Fr, 2016-01-08 at 23:23 +0100, Jeppe Johansen wrote:
> > CMSIS is a lot of things. What exact part of it are you asking about here?
> 
> In that file for example from line 887 on:
> 
> http://svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/rtl/embedded/arm/stm32f407xx.pp?revision=32386&view=markup
> 
> there are lots of 'external'ly declared procedures. Where can I find
> them?

Hmm, that's only a list of interrupt procedures. After the declaration
there are some assembler seetings to have default values - OK, now I
think I understand. It's up to the user to let them be set to default or
redefine and implement the IRQ procedure.

> > FPC's embedded target has a bunch of controller units that are pulled in 
> > depending on the -Wp argument. These define exactly what you see in the 
> > units in the rtl/embedded/arm directory. In most cases just the physical 
> > registers, the interrupt vectors(and sometimes the IRQ levels), and some 
> > startup code. The mapping between the files and the controller names can 
> > be seen in the huge table in compiler/arm/cpuinfo.pas.
> 
> Have seen that, the wiki explains it.
> 
> > There are no object or source files for other parts of CMSIS, so things 
> > like the CMSIS-DSP and all cortex-m intrinsics don't work right now.
> > 
> > The cortexm3 and cortexm4 units that you can include in your uses clause 
> > will model some of the missing functionality but very far from all.
> 
> Your older implementation of STM32F103 found on your website has
> declarations and implementations of the most important parts. The "new
> style" sources included in fpc/rtl haven't. Or at least I can't find
> them.

No, it hasn't. I have read too many source files today. So there is only
the declaration stuff for accessing the internals of the SoC, timers,
peripherals and the like, OK.

Marc

> > Floating point support is very untested. Most of it should work, but 
> > there might be some bugs. You can enable it by compiling your RTL and 
> > application with -CfFPv4_S16. If you decide to test it please write on 
> > the bugtracker if you run into problems.
> 
> I think I'll have to wait a while, that not the right toy for starting
> up. ;)
> 
> Thanks a lot!
> Marc
> 
> > Best Regards,
> > Jeppe
> > 
> > On 01/08/2016 10:58 PM, Marc Santhoff wrote:
> > > Hi,
> > >
> > > looking at the embedded source code there has been done a lot of work.
> > > I'm interested in trying fpc on Cortex-M3 and M4, mostly from ST.
> > >
> > > While trying to get an overview of the sources I found the declarations
> > > are pulled into a processor specific file by external declarations. But
> > > where does it come from, does the linker pull in the cmsis object files
> > > or something?
> > >
> > > If so, how? There has to be a pointer to those files I couldn't find
> > > either.
> > >
> > > Second question is:
> > > Does the embedded target support hard floting point on STM32F4?
> > >
> > > TIA,
> > > Marc
> > >
> > 
> > _______________________________________________
> > fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> > http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
> 

-- 
Marc Santhoff <M.Santhoff at web.de>




More information about the fpc-pascal mailing list