Commit Graph

241 Commits

Author SHA1 Message Date
florian
70b8789262 o basic extended pascal support:
+ automatically loaded helper unit
  * Makefiles adapted
  * mode switch
  * mode switches reorganized
+ TimeStamp support

git-svn-id: trunk@32330 -
2015-11-15 15:13:36 +00:00
michael
fde42ca8ef * Type helpers, compatible to Delphi XE 8
git-svn-id: trunk@32262 -
2015-11-07 09:40:54 +00:00
nickysn
2e3cb70489 * regenerated makefiles after adding the win16 target
git-svn-id: trunk@31525 -
2015-09-05 11:02:54 +00:00
florian
d71a3d0533 * charset depends on the objpas unit
git-svn-id: trunk@31438 -
2015-08-28 18:49:02 +00:00
Jeppe Johansen
5a302dfabb Fix some addresses that were missing a zero in CortexM7 unit.
Change all .word directives to .long in stm32f7xx headers.

git-svn-id: trunk@31325 -
2015-08-15 12:23:08 +00:00
Jeppe Johansen
4e646cca60 Forgot to add Cortex-M7 unit to previous commit.
git-svn-id: trunk@31258 -
2015-07-31 22:25:08 +00:00
Jeppe Johansen
2b80d46492 Added STM32F7xx controller units and types.
git-svn-id: trunk@31257 -
2015-07-31 22:21:16 +00:00
Jeppe Johansen
55669f62b1 Added most AVR controllers.
Made absolutevarsym use PUint instead of AWord for its offset to fix range errors.

git-svn-id: trunk@31242 -
2015-07-29 21:01:21 +00:00
florian
42ea874bb1 * avr version corrected for several controllers
git-svn-id: trunk@31237 -
2015-07-27 19:49:02 +00:00
florian
ab43e07320 * reduce code size after r31031
git-svn-id: trunk@31041 -
2015-06-13 17:00:32 +00:00
Jeppe Johansen
353682db67 Enable SUBARCH directive for avr-embedded target.
git-svn-id: trunk@31032 -
2015-06-13 12:40:31 +00:00
Jeppe Johansen
ab9c8bb569 Fixed startup assembler code for the case where there's no data in .bss and/or in .data.
Fixed _stack_top symbol calculation so it works for all controllers.
Added ATTINY2313 controller.

git-svn-id: trunk@31031 -
2015-06-13 12:30:50 +00:00
Jeppe Johansen
db6093023b Fixed initialization code for MK20D7 controllers.
Added flash configuration section to RTL and linker script.

git-svn-id: trunk@30972 -
2015-06-02 22:59:03 +00:00
florian
e9ef6347d2 * ATmega16 support by Anton Kavalenka, resolves issue #28217
git-svn-id: trunk@30943 -
2015-05-31 15:55:39 +00:00
florian
6a26268793 * correct number of interrupt vectors
git-svn-id: trunk@30939 -
2015-05-30 18:01:38 +00:00
florian
cf552b2a0b + ATmeag168/ATmeag368 support
git-svn-id: trunk@30938 -
2015-05-30 18:01:14 +00:00
florian
0cd521fc8b + ATmega48/ATmega88 support
git-svn-id: trunk@30937 -
2015-05-30 17:55:49 +00:00
florian
e9d886cdfc * cleanup
git-svn-id: trunk@30931 -
2015-05-28 21:10:58 +00:00
florian
0f73675354 + ATtiny24/ATtiny44/ATtiny84 support
git-svn-id: trunk@30930 -
2015-05-28 21:10:39 +00:00
Jeppe Johansen
36dfe750d8 Added Freescale MK20D7 controller support.
git-svn-id: trunk@30925 -
2015-05-28 11:46:22 +00:00
Jonas Maebe
89418d23e5 * regenerated Makefiles with Linux/AArch64 support
git-svn-id: trunk@30891 -
2015-05-20 20:15:10 +00:00
florian
bbcc66ad15 * PASCALMAIN does not return, so we can jmp to it
git-svn-id: trunk@30770 -
2015-05-02 19:18:10 +00:00
florian
ca9ef3d209 * cometics
git-svn-id: trunk@30769 -
2015-05-02 19:16:49 +00:00
florian
f5edf77a05 + Atmega8 support
git-svn-id: trunk@30768 -
2015-05-02 18:18:00 +00:00
florian
8ee9550d22 + misising part of r30759 (commit of sysstrh.inc shouldn't have gone in r30759):
slightly modified patch by lelekx to implement plugable file routines for the embedded target, resolves issue #22918

git-svn-id: trunk@30764 -
2015-05-02 13:51:32 +00:00
florian
c2c87828e9 + slightly modified patch by lelekx to implement plugable file routines for the embedded target, resolves issue #22918
git-svn-id: trunk@30759 -
2015-05-02 08:03:18 +00:00
florian
500a2051ac * dependencies updated
git-svn-id: trunk@30755 -
2015-05-01 16:36:22 +00:00
florian
8de58f5db2 * use heapmgr to make more test programs work with avrsim
git-svn-id: trunk@30753 -
2015-05-01 16:33:11 +00:00
florian
b8198963f3 * use modeswitch result instead of mode objpas, so the objpas unit is not pulled in
git-svn-id: trunk@30752 -
2015-05-01 16:31:07 +00:00
florian
7b48232d71 * moved common code to a separate include file
git-svn-id: trunk@30664 -
2015-04-19 12:53:06 +00:00
florian
2ecadc065e * noreturn directive
git-svn-id: trunk@30663 -
2015-04-19 12:52:21 +00:00
florian
07cba31a0a * cosmetics
git-svn-id: trunk@30631 -
2015-04-17 20:12:57 +00:00
florian
77bc87a809 * do not compile consoleio in objpas mode to avoid dependency on the objpas unit, resolves also #27856
git-svn-id: trunk@30607 -
2015-04-15 19:45:34 +00:00
Jeppe Johansen
65a69129c5 Add initial support for STM32F429 core
git-svn-id: trunk@30599 -
2015-04-14 21:55:37 +00:00
florian
bae4d89913 - avrsim needs no separate rule
git-svn-id: trunk@30598 -
2015-04-14 21:19:08 +00:00
florian
886e3e8d02 * disable several complex procedures for avr with a newly introduced define: EXCLUDE_COMPLEX_PROCS. They
might compile with an improved register allocator in the future

git-svn-id: trunk@30546 -
2015-04-11 14:43:39 +00:00
florian
a01a010824 * disable lineinfo unit for avr for now
git-svn-id: trunk@30440 -
2015-04-05 19:08:33 +00:00
florian
07aa519e1c * add console output support to avrsim controller unit
git-svn-id: trunk@30388 -
2015-03-29 21:48:42 +00:00
florian
1b9105e8c3 * make 3.82 fixes
* disable getopts for avr-embedded

git-svn-id: trunk@30386 -
2015-03-29 21:41:00 +00:00
florian
dfd4d3656b + avrsim controller target requiring a special avr simulator with a certain memory location handling, see avrsim.pp controller helper unit for what it is needed
git-svn-id: trunk@30385 -
2015-03-29 21:13:36 +00:00
florian
e4b8478da4 * fix building of avr-embedded rtl
* make 3.82 related fixes

git-svn-id: trunk@30379 -
2015-03-29 19:45:07 +00:00
Jeppe Johansen
f7526d0d36 Add classes and stub thread support in the embedded rtl.
git-svn-id: trunk@30274 -
2015-03-22 13:55:20 +00:00
Jeppe Johansen
d12b913e70 Add initial support in ARM-embedded for Allwinner A20.
git-svn-id: trunk@30144 -
2015-03-08 12:22:57 +00:00
Jonas Maebe
fa328436ab * regenerated for iphonesim/x86-64
git-svn-id: trunk@29974 -
2015-02-23 22:56:41 +00:00
Jonas Maebe
3d01d4ceb1 * regenerated with Darwin/AArch64 support
git-svn-id: trunk@29950 -
2015-02-23 22:54:53 +00:00
Jeppe Johansen
1aeb07c835 Fixed more small bugs in the embedded heapmgr. Some changes copied from tinyheap.
git-svn-id: trunk@29612 -
2015-02-03 19:37:29 +00:00
Jeppe Johansen
85c5e7330a Make HeapMgr.GetAlignedMem public. This function is useful for embedded targets where alignment > 32(or sizeof(pointer)) bytes is required.
Fix RegisterHeapBlock. Calling FreeMem requires the heap manager to be installed, plus it requires the size of the segment to be stored in front of the pointer. Instead use InternalFreeMem

git-svn-id: trunk@29611 -
2015-02-03 00:24:51 +00:00
Jeppe Johansen
7a826cc481 Fix compilation of i386-embedded target.
git-svn-id: trunk@29610 -
2015-02-03 00:22:51 +00:00
marco
d407b668d1 * version updated to 3.1.1
git-svn-id: trunk@29399 -
2015-01-04 21:09:04 +00:00
sergei
3a5e6485b5 - RTL: removed InitVariantManager, it was an empty procedure since day 1.
git-svn-id: trunk@29114 -
2014-11-22 20:35:46 +00:00
Jeppe Johansen
e012b4fa23 Inline calls to FindSize which removes a lot of unnecessary calls.
git-svn-id: trunk@28735 -
2014-10-04 11:05:25 +00:00
sergei
f85a8159ef * compiler/mips/cpuinfo.pas: removed "FPU_" prefixes from FPU names, not necessary because compiler inserts one itself.
* rtl/embedded/system.pp: removed (commented out) FPU initialization from initialization of system unit, was dead code anyway because FPC_HAS_FEATURE_FPU is never defined and "feature FPU" does not exist.
* rtl/mips/*.inc: don't compile FPU instructions if compiling RTL with -CfNONE or -CfSOFT (however, handling these switches for MIPS targets in compiler needs further fixing).

git-svn-id: trunk@28670 -
2014-09-15 18:24:23 +00:00
Jeppe Johansen
0dc39b5d63 Applied patch from Michael Ring that adds some startup code for some new stm32f0 and stm32f1 controllers, and fixes naming on some LPC ARMv6m controllers.
git-svn-id: trunk@28009 -
2014-06-20 06:49:04 +00:00
pierre
3d34a8a3b0 Makefiles updated with fpcmake rev 27428
git-svn-id: trunk@27508 -
2014-04-10 09:58:17 +00:00
florian
b2b26f84cf * partially merged the mips-embedded branch of Michael Ring:
- startup code/controller units are not merged yet
  - assembler call does not pass the needed CPU type yet

git-svn-id: trunk@27188 -
2014-03-19 21:25:38 +00:00
sergei
9801288cdc * Removed SysInitFPU/SysResetFPU from (remaining) system units initialization code. It is redundant there because it is called from fpc_cpuinit, or, in case of i386, from fpc_cpucodeinit.
* It fixes regression of tw16283b after r27169. 
* BeOS, Haiku: added fpc_cpucodeinit to compensate for removal of SysInitFPU, it also enables use of CPU features like SSE.

git-svn-id: trunk@27171 -
2014-03-17 10:53:52 +00:00
Jeppe Johansen
bda6bf8137 Fix compilation of ARM-embedded RTL
git-svn-id: trunk@27115 -
2014-03-12 16:40:04 +00:00
Jeppe Johansen
10522e9779 Disabled a_adjust_sp optimized steps for now.
Integrated proper stack frame calculation.
Changed rjmp to jmp in ATMEGA128 interrupt vectors.

git-svn-id: trunk@26964 -
2014-03-05 19:17:46 +00:00
Jeppe Johansen
98606eea15 Fixed some bugs in the AVR RTL code.
Changed atmega code to use weak linking for interrupt handlers.

git-svn-id: trunk@26945 -
2014-03-04 08:03:27 +00:00
Jeppe Johansen
66f5b71fe9 Fixed passing of 32bit arguments on 8-bit architectures.
Added initial RTL startup code for AVR.

git-svn-id: trunk@26931 -
2014-03-02 20:53:21 +00:00
yury
73c26bd6be * mipsel-android: Regenerated makefiles. From now the mipsel-android target can be built and used.
git-svn-id: trunk@26705 -
2014-02-07 12:37:17 +00:00
Tomas Hajny
ce4cb437e2 + character sets for central Europe added also to Makefiles as implicit units
git-svn-id: trunk@26526 -
2014-01-20 00:20:11 +00:00
paul
14a34239cc rtl: add cp856 to makefiles
git-svn-id: trunk@26387 -
2014-01-05 06:03:28 +00:00
nickysn
1bea98995b * regenerated fpcmake makefiles after r25642
git-svn-id: trunk@25644 -
2013-10-05 10:11:27 +00:00
Jonas Maebe
af3f12f60c * rawbytestring/unicodestring versions of findfirst/findnext/findclose
o these routines are now generic wrappers in filutil.inc, and call
     the platform-dependent internalfindfirst/next/close routines
   o on unix, the fnmatch routine got proper support for UTF-8 matching
     (e.g., it won't match a partial UTF-8 code point to a "?" wildcard)
   o for NativeNT, a similar (untested) UTF-16 version has been added
  + test for the above
  * rawbytestring/unicodestring versions of fileage

git-svn-id: branches/cpstrrtl@25302 -
2013-08-19 22:04:25 +00:00
Jonas Maebe
df6a2dce00 + unicodestring support for assign/erase/rename
+ codepage support for textrec/filerec and the above routines
  * textrec/filerec now store the filename by default using widechar. It is
    possible to switch back to ansichars using the FPC_ANSI_TEXTFILEREC define.
    In that case, from now on the filename will always be stored in
    DefaultFileSystemEncoding
  * fixed potential buffer overflows and non-null-terminated file names in
    textrec/filerec
  + dodirseparators(pwidechar), changed the dodirseparators(pchar/pwidechar)
    parameters into var-parameters and gave those routines an extra parameter
    that indicates whether the p(wide)char can be changed in place if
    necessary or whether a copy must be made first (avoids us having to make
    all strings always unique everywhere, because they might be changed on
    some platforms via a pchar)
  * do_open/do_erase/do_rename got extra boolean parameters indicating whether
    the passed pchars point to data that can be freely changed (to pass on to
    dodirseparators() if applicable)
  * objects.pp: force assign(pchar) to be called, because
    assign(array[0..255]) cannot choose between pchar and rawbytestring
    versions (and removing the pchar version means that assign(pchar) will
    be mapped to assign(shortstring) in {$h-})
  * fixed up some routines in other units that depend on the format of
    the textrec/filerec.name field

git-svn-id: branches/cpstrrtl@25137 -
2013-07-19 16:30:51 +00:00
Jonas Maebe
155aafc255 * moved SYSUTILS_HAS_ANSISTR/UNICODESTR_FILEUTIL_IMPL define to interface
so declarations can also depend on it and similar defines (not yet the
    case)
  + added SYSUTILS_HAS_ANSISTR_ENVVAR_IMPL/SYSUTILS_HAS_UNICODESTR_ENVVAR_IMPL
    to indicate whether the platform-dependent part of the unit provides
    an ansistring/unicodestring interface to get environment variables
  + Windows version of getenvironmentvariable(unicodestring)
  + generic ansistring/unicodestring versions of GetEnvironmentVariable()
    in case the platform doesn't provide them
  * result of GetEnvironmentString() is ansistring/unicodestring depending
    on the state of the FPC_RTL_UNICODE define

git-svn-id: branches/cpstrrtl@25116 -
2013-07-16 14:16:34 +00:00
Jonas Maebe
eeb98a0c0f - removed platform-specific implementations of GetCurrentDir, SetCurrentDir,
CreateDir and RemoveDir, and implemented a generic one (based on the OS/2
    version) in the shared sysutils code (so that the filesystem code page
    support for the system unit routines can be reused)
  * include both ansistring and unicodestring versions of the above routines,
    and of ForceDirectories. Exception: GetCurrentDir, which cannot be
    overloaded based on function result and whose return type currently
    dependends on the FPC_UNICODE_RTL define

git-svn-id: branches/cpstrrtl@25113 -
2013-07-16 14:15:55 +00:00
Jonas Maebe
26b2149ced * converted the following sysutils routines to unicodestring and
rawbytestring: FileExists, DirectoryExists, FileSetDate, FileGetAttr,
    FileSetAttr, DeleteFile, RenameFile, FileSearch, ExeSearch,
    FileIsReadOnly

git-svn-id: branches/cpstrrtl@25078 -
2013-07-09 19:01:45 +00:00
Jonas Maebe
60365489e2 * converted fileopen/filecreate interface to RawByteString for
msdos/embedded, but do not perform any code page conversions
    (size limits prevent widestring manager on msdos, and the
     embedded routines are empty)

git-svn-id: branches/cpstrrtl@25076 -
2013-07-09 19:01:36 +00:00
Jonas Maebe
d66d15aad3 + added mkdir/chdir/rmdir(rawbytestring) and (unicodestring) to the system unit
* renamed platform-specific pchar versions of those rouines to do_*() and
    changed them to either rawbytestring or unicodestring depending on the
    FPCRTL_FILESYSTEM_SINGLE_BYTE_API/FPCRTL_FILESYSTEM_TWO_BYTE_API setting
  * implemented generic shortstring versions of those routines on top of either
    rawbytestring or unicodestring depending on the API-kind (in case of the
    embedded target, if ansistring are not supported they will map directly
    to shortstring routines instead)
  * all platform-specific *dir() routines with rawbytestring parameters now
    receive their parameters in DefaultFileSystemCodePage
  - removed no longer required ansistring variants from the objpas unit
  - removed no longer required FPC_SYS_MKDIR etc aliases
  * factored out empty string and inoutres<>0 checks from platform-specific
    *dir() routines to generic ones
  o platform-specific notes:
   o amiga/morphos: check new pathconv(rawbytestring) function
   o macos TODO: convert PathArgToFSSpec (and the routines it calls) to
     rawbytestring
   o nativent: added SysUnicodeStringToNtStr() function
   o wii: convert dirio callbacks to use rawbytestring to avoid conversion
  + test for unicode mk/ch/rm/getdir()

git-svn-id: branches/cpstrrtl@25048 -
2013-07-04 22:28:37 +00:00
Jonas Maebe
2e9b642a3b * rtldefs.inc include file for embedded targets (forgot to commit earlier)
git-svn-id: branches/cpstrrtl@25009 -
2013-06-28 15:46:31 +00:00
Jonas Maebe
62ee16278b * changed getdir(ansistring):ansistring to
getdir(rawbytestring):rawbytestring so it can accept strings in any
    encoding and cleanly return results in DefaultRTLFileSystemCodePage
  + getdir(unicodestring):unicodestring
  * renamed the getdir implementation of all platforms except for embedded-
    without-ansistring-support to do_getdir(), and depending on the
    FPCRTL_FILESYSTEM_SINGLE_BYTE_API/FPCRTL_FILESYSTEM_TWO_BYTE_API define
    changed its shortstring parameter to ansistring or unicodestring. The
    do_getdir(rawbytestring) routine should just set the code page of the
    return value to DefaultFileSystemCodePage without conversion (not
    DefaultRTLFileSystemCodePage with conversion, that conversion is performed
    in getdir if necessary; this avoids double conversions in case
    getdir(unicodestring) is called)
  + generic getdir(shortstring) for platforms supporting either ansistrings or widestrings
  o platform maintainers:
   o OS/2: adjust code to supports paths > 255 characters if those are supported
   o Wii: adjust used callback to use rawbytestring to support paths > 255 characters and
     avoid shortstring->rawbytestring conversion overhead
   o Windows: GetCurrentDirectoryW is now always used (to prevent data loss)

git-svn-id: branches/cpstrrtl@24993 -
2013-06-27 21:37:47 +00:00
florian
0e9b8adb7a patch by Michael Ring:
+ support of several armv6m MCUs for arm-embedded
* renamed lpc1343 unit to lpc13xx
+ more lpc13xx MCUs added

git-svn-id: trunk@24379 -
2013-04-29 19:57:08 +00:00
pierre
78a7043352 Regenerate all Makefiles with an up-to-date fpcmake binary (dummy commit)
git-svn-id: trunk@24367 -
2013-04-29 12:30:54 +00:00
florian
3d7033d81e * Makefiles regenerated
git-svn-id: trunk@24325 -
2013-04-25 20:25:57 +00:00
paul
a592e77f35 rtl: add missing windows codepages (mantis #0024294)
git-svn-id: trunk@24295 -
2013-04-22 01:48:12 +00:00
florian
380bc56e32 + create a default heap on embedded targets and register this default heap
* sysutils for the embedded target depends on a working heap manager

git-svn-id: trunk@23853 -
2013-03-16 10:37:18 +00:00
paul
db357320d7 rtl: install all cpXXX .ppu and .o files
git-svn-id: trunk@23802 -
2013-03-12 11:44:15 +00:00
paul
e379daaf9c compiler, rtl: move cpXXXX.pas files from compiler to RTL\charmaps directory and cleanup them, enable charmaps building for the majority of targets
git-svn-id: trunk@23799 -
2013-03-12 01:35:25 +00:00
florian
c2baf7b4c0 Merge r23058
git-svn-id: trunk@23776 -
2013-03-10 16:37:57 +00:00
florian
086ae4b999 Merge r22905 and r22906
git-svn-id: trunk@23773 -
2013-03-10 10:45:34 +00:00
florian
21c154d60a Merged r22903
git-svn-id: trunk@23757 -
2013-03-09 20:56:07 +00:00
florian
1eeeb309c7 * intial armv6m support, it is not working yet, constant pool insertation and conditional branch fixup is not working yet
git-svn-id: trunk@23682 -
2013-03-03 12:20:10 +00:00
florian
bcd48ac1a1 + patch by Justin Smyth to support the lpc1343, resolves #23844
git-svn-id: trunk@23620 -
2013-02-14 20:38:53 +00:00
yury
2fc220cc6c * Regenerated makefiles.
git-svn-id: branches/targetandroid@23410 -
2013-01-16 14:52:36 +00:00
yury
d26f0552a0 * Sync with trunk r23404.
* Regenerated makefiles.

git-svn-id: branches/targetandroid@23405 -
2013-01-16 13:21:51 +00:00
florian
21d62277ce + build sysutils unit for arm-embedded
git-svn-id: trunk@23296 -
2013-01-02 11:02:44 +00:00
florian
358a62d7c3 * enable command line handling dummy for arm-embedded
git-svn-id: trunk@23295 -
2013-01-02 10:52:19 +00:00
florian
68d04a4d21 + add random code from Francesco's GBA code
git-svn-id: trunk@23292 -
2013-01-02 10:47:35 +00:00
florian
d1856df4f7 * variants do not hurt arm either
git-svn-id: trunk@23281 -
2013-01-01 19:32:47 +00:00
florian
dcc227882d + newline
git-svn-id: trunk@23280 -
2013-01-01 19:32:17 +00:00
florian
d2a7d09931 * use pascal loop, so it can be better optimized
git-svn-id: trunk@23273 -
2013-01-01 14:59:30 +00:00
florian
85ae82def4 * enable more features for arm-embedded, they don't blow up executables if not used
git-svn-id: trunk@23263 -
2012-12-31 19:32:04 +00:00
florian
ebd2e79270 * calling SysInitExceptions is not really needed because it sets only some vars to nil which are nil anyways, this saves some bytes
git-svn-id: trunk@23261 -
2012-12-31 19:28:45 +00:00
florian
020b3e02ea + parallel compilation of embedded rtl
* fix rules for GNU Make 3.82

git-svn-id: trunk@23255 -
2012-12-31 14:17:20 +00:00
Jeppe Johansen
3ee29eb219 Fixed ARMv7-EM code generation and RTL compilation
Added LM4F120H5 controller type and startup code

git-svn-id: branches/laksen/arm-embedded@22903 -
2012-11-01 17:25:01 +00:00
masta
b047a80b14 Small fixes to ARM-Embedded RTL from Jeppe Johansen
Added FSMC register definitions(from Anton Rieckert)
Fixed faulty NVIC definitions

git-svn-id: trunk@22820 -
2012-10-22 11:59:28 +00:00
Jeppe Johansen
670dd29103 Added FSMC register definitions(from Anton Rieckert)
Fixed faulty NVIC definitions

git-svn-id: branches/laksen/arm-embedded@22818 -
2012-10-22 11:17:55 +00:00
Jeppe Johansen
9892aea2ca Added register specifications to lpc1768.pp. From Joan Duran
git-svn-id: branches/laksen/arm-embedded@22647 -
2012-10-14 19:28:08 +00:00