Browse Source

+ draft for esp-idf version specific rtl unit which contains the necessery linklib statements

florian 3 years ago
parent
commit
54f2308d2a

+ 4 - 0
compiler/pmodules.pas

@@ -413,6 +413,10 @@ implementation
           (embedded_controllers[current_settings.controllertype].controllerunitstr<>'') then
           (embedded_controllers[current_settings.controllertype].controllerunitstr<>'') then
           AddUnit(embedded_controllers[current_settings.controllertype].controllerunitstr);
           AddUnit(embedded_controllers[current_settings.controllertype].controllerunitstr);
 {$pop}
 {$pop}
+{$ifdef XTENSA}
+        if not(current_module.is_unit) and (target_info.system=system_xtensa_freertos) then
+          AddUnit('espidf_'+tostr(idf_version));
+{$endif XTENSA}
       end;
       end;
 
 
 
 

+ 1 - 1
rtl/freertos/Makefile

@@ -517,7 +517,7 @@ endif
 ifeq ($(ARCH),xtensa)
 ifeq ($(ARCH),xtensa)
 CPU_SPECIFIC_COMMON_UNITS=sysutils math classes fgl macpas typinfo types rtlconsts getopts lineinfo
 CPU_SPECIFIC_COMMON_UNITS=sysutils math classes fgl macpas typinfo types rtlconsts getopts lineinfo
 ifeq ($(SUBARCH),lx6)
 ifeq ($(SUBARCH),lx6)
-CPU_UNITS=esp32
+CPU_UNITS=esp32 espidf_40200
 CPU_UNITS_DEFINED=1
 CPU_UNITS_DEFINED=1
 endif
 endif
 ifeq ($(SUBARCH),lx106)
 ifeq ($(SUBARCH),lx106)

+ 2 - 2
rtl/freertos/Makefile.fpc

@@ -227,7 +227,7 @@ endif
 ifeq ($(ARCH),xtensa)
 ifeq ($(ARCH),xtensa)
 CPU_SPECIFIC_COMMON_UNITS=sysutils math classes fgl macpas typinfo types rtlconsts getopts lineinfo
 CPU_SPECIFIC_COMMON_UNITS=sysutils math classes fgl macpas typinfo types rtlconsts getopts lineinfo
 ifeq ($(SUBARCH),lx6)
 ifeq ($(SUBARCH),lx6)
-CPU_UNITS=esp32
+CPU_UNITS=esp32 espidf_40200
 CPU_UNITS_DEFINED=1
 CPU_UNITS_DEFINED=1
 endif
 endif
 ifeq ($(SUBARCH),lx106)
 ifeq ($(SUBARCH),lx106)
@@ -445,7 +445,7 @@ ctypes$(PPUEXT) :  $(INC)/ctypes.pp $(SYSTEMUNIT)$(PPUEXT)
 
 
 fpcylix$(PPUEXT) : fpcylix.pp cthreads$(PPUEXT) cwstring$(PPUEXT) dynlibs$(PPUEXT) objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 fpcylix$(PPUEXT) : fpcylix.pp cthreads$(PPUEXT) cwstring$(PPUEXT) dynlibs$(PPUEXT) objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) fpcylix.pp
 	$(COMPILER) fpcylix.pp
-	
+
 intrinsics$(PPUEXT) : $(PROCINC)/intrinsics.pp $(SYSTEMUNIT)$(PPUEXT)
 intrinsics$(PPUEXT) : $(PROCINC)/intrinsics.pp $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $(PROCINC)/intrinsics.pp
 	$(COMPILER) $(PROCINC)/intrinsics.pp
 
 

+ 0 - 21
rtl/freertos/xtensa/esp32.pp

@@ -9,27 +9,6 @@ unit esp32;
 
 
   interface
   interface
 
 
-{$linklib esp32,static}
-{$linklib soc,static}
-{$linklib driver,static}
-{$linklib freertos,static}
-{$linklib log,static}
-{$linklib esp_common,static}
-{$linklib heap,static}
-{$linklib newlib,static}
-{$linklib vfs,static}
-{$linklib esp_ringbuf,static}
-{$linklib spi_flash,static}
-{$linklib app_update,static}
-{$linklib xtensa,static}
-{$linklib bootloader_support,static}
-{$linklib pthread,static}
-{$linklib hal,static}
-{$linklib libm,static}
-{$linklib libg,static}
-{$linklib c,static}
-{$linklib esp_event,static}
-
   implementation
   implementation
 
 
     uses
     uses

+ 52 - 0
rtl/freertos/xtensa/espidf_40200.pp

@@ -0,0 +1,52 @@
+{
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 2021 by Florian Klaempfl
+    member of the Free Pascal development team.
+
+    System unit for FreeRTOS systems
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+unit espidf_40200;
+
+interface
+
+{$linklib esp32,static}
+{$linklib soc,static}
+{$linklib driver,static}
+{$linklib freertos,static}
+{$linklib log,static}
+{$linklib esp_common,static}
+{$linklib heap,static}
+{$linklib newlib,static}
+{$linklib vfs,static}
+{$linklib esp_ringbuf,static}
+{$linklib spi_flash,static}
+{$linklib app_update,static}
+{$linklib xtensa,static}
+{$linklib bootloader_support,static}
+{$linklib pthread,static}
+{$linklib hal,static}
+{$linklib libm,static}
+{$linklib libg,static}
+{$linklib c,static}
+{$linklib esp_event,static}
+{$linklib esp_system, static}
+{$linklib esp_hw_support, static}
+{$linklib esp_rom, static}
+{$linklib esp_timer, static}
+{$linklib bootloader_support, static}
+{$linklib esp_pm, static}
+{$linklib driver, static}
+{$linklib esp_ipc, static}
+{$linklib xt_hal, static}
+
+implementation
+
+end.