View Issue Details

IDProjectCategoryView StatusLast Update
0029365FPCDocumentationpublic2016-09-28 13:51
ReporterSimon AmeisAssigned ToMichael Van Canneyt 
Status closedResolutionfixed 
PlatformAVROSembeddedOS Version
Product Version3.1.1Product Build 
Target Version4.0.0Fixed in Version3.1.1 
Summary0029365: [Feature Request] Compile Time Macros for MCU specs
DescriptionPlease expose compiler known microcontroller unit dependant specifications via compile time macros like as found in compiler/avr/cpuinfo.pas

  • flashbase

  • flashsize

  • srambase

  • sramsize

  • eeprombase

  • eepromsize

Additional InformationUsing them may be relevant when writing code which is the same on all MCU's but need to react on individual hardware specifications.

E.g. Program memory location counter depends on flashsize but is required to calculate timings for RET instruction.
TagsNo tags attached.
Fixed in Revision33236
Attached Files


Simon Ameis

2016-01-11 22:16

reporter   ~0088800

I just noticed, FPC already defines the macro CPUAVR_2_BYTE_PC wich is exactly the case for what I would have needed the compile time macros.
So for my needs the bug report may be changed to category "Documentation" as this is not mentioned in documentation (see


2016-03-13 16:51

administrator   ~0090970



2016-03-13 16:52

administrator   ~0090971

So moved to documentation.

Michael Van Canneyt

2016-03-13 17:19

administrator   ~0090973

Florian, can you explain what they mean ?
I have no idea what they mean or do.

and it would be nice to be able to correctly document these things :)


2016-03-13 18:10

administrator   ~0090978

Last edited: 2016-03-13 18:10

View 2 revisions

When compiling for the embedded target (i. e. system without OS like an AVR MCU) the base/starting addresses and (FPC_*BASE) sizes (FPC_*SIZE) of the different memory areas of the controller can be requested using theses macros: flash, static ram, eeprom and boot code.

Michael Van Canneyt

2016-03-19 11:10

administrator   ~0091198

Documented in rev. 1295 of programmer's guide.

Issue History

Date Modified Username Field Change
2016-01-10 22:27 Simon Ameis New Issue
2016-01-11 22:16 Simon Ameis Note Added: 0088800
2016-03-13 16:51 Florian Note Added: 0090970
2016-03-13 16:51 Florian Fixed in Revision => 33236
2016-03-13 16:51 Florian Category Compiler => Documentation
2016-03-13 16:52 Florian Note Added: 0090971
2016-03-13 17:18 Michael Van Canneyt Assigned To => Florian
2016-03-13 17:18 Michael Van Canneyt Status new => assigned
2016-03-13 17:19 Michael Van Canneyt Note Added: 0090973
2016-03-13 18:10 Florian Note Added: 0090978
2016-03-13 18:10 Florian Note Edited: 0090978 View Revisions
2016-03-13 18:11 Florian Assigned To Florian => Michael Van Canneyt
2016-03-19 11:10 Michael Van Canneyt Note Added: 0091198
2016-03-19 11:10 Michael Van Canneyt Status assigned => resolved
2016-03-19 11:10 Michael Van Canneyt Fixed in Version => 3.1.1
2016-03-19 11:10 Michael Van Canneyt Resolution open => fixed
2016-03-19 11:10 Michael Van Canneyt Target Version => 4.0.0
2016-09-28 13:51 Simon Ameis Status resolved => closed