Chiming in ;-)
There are two more options:
https://github.com/yunkot/pxl
There are units available for higher level access to STM32F4, Teensy and
some Freescale Devices. Very usable for devices that have >64k of Flash,
a number of displays and sensors are supported out of the box.
When your board has Arduino compatible headers the code is very portable
between the different devices.
https://github.com/yunkot/pxl/tree/PXL-cleanups
As there are some limitations with classes and memory usage in
FreePascal there's a work-in-progress alternative available named MBF
that uses record helpers.
Syntax and usage is 99% the same as with the PXL Library mentioned above
but the memory footprint is much lower (typically 6-8k of flash for
simple apps). Teensy/Freescale code is already there, I have not yet
committed the STM32 and LPC8xx code as I wanted to commit them when they
both on same feature level as the existing code. Also more examples will
come with the new commit.
If you are interested in testing let me know...
Michael
Am 09.01.16 um 00:55 schrieb Jeppe Johansen:
Yes, you understand it correctly :)
The FPC RTL only exposes the hardware, not the firmware stack on top.
It might not be documented well anywhere but the weak linking with set
defaults basically means you can declare interrupt handlers like this:
procedure MySystickHandler; [public, alias: 'SysTick_interrupt'];
begin
// Code
end;
For STM32 there's the stm32f103fw file on my site. There's also a
version on Anton Rieckert's github page which is split up a bit nicer.
Not sure what the status or compatibility is.
Otherwise I can plug my project of converting the STM32F7 codebase
here: https://github.com/Laksen/fp-stm32f7xx_hal
If anyone other know of any nice embedded projects/links be sure to
chime in :)
I know some people have been working with Silicon Labs and Freescale
codebases too. So there's a lot going on around.
Best Regards,
Jeppe
On 01/08/2016 11:58 PM, Marc Santhoff wrote:
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@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal