]> the.earth.li Git - esp8266-clock.git/commitdiff
Update for SDK 2.2.1 with system compiler
authorJonathan McDowell <noodles@earth.li>
Mon, 3 Sep 2018 15:49:30 +0000 (16:49 +0100)
committerJonathan McDowell <noodles@earth.li>
Mon, 3 Sep 2018 15:49:30 +0000 (16:49 +0100)
Move to using gcc/binutils from system paths (tested with gcc 7.3.0
packages on Debian) and the Espressif NONOS SDK 2.2.1. Also move to a
512k + 512k image format instead of trying to fit 2 images in a 512kB
flash chip.

Makefile
clock.c
max7219.c
rom0.ld
rom1.ld
user_main.c

index 9fdad10ef1a7bda8eab00da780aab83deca2fe15..511cfd5b680d92ca23b3aaaec948d0519993dba5 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,15 +1,18 @@
 SDKDIR ?= /opt/esp8266-sdk
 
-AR = $(SDKDIR)/bin/xtensa-lx106-elf-ar
-CC = $(SDKDIR)/bin/xtensa-lx106-elf-gcc
-LD = $(SDKDIR)/bin/xtensa-lx106-elf-gcc
-OBJCOPY = $(SDKDIR)/bin/xtensa-lx106-elf-objcopy
-OBJDUMP = $(SDKDIR)/bin/xtensa-lx106-elf-objdump
+AR = xtensa-lx106-elf-ar
+CC = xtensa-lx106-elf-gcc
+LD = xtensa-lx106-elf-gcc
+OBJCOPY = xtensa-lx106-elf-objcopy
+OBJDUMP = xtensa-lx106-elf-objdump
 
 LIBS = -lc -lhal -lphy -lpp -lnet80211 -llwip -lwpa -lmain
 
-CFLAGS = -Wall -Os -fno-inline-functions -mlongcalls -DICACHE_FLASH -I.
-LDFLAGS = -nostdlib -Wl,--no-check-sections -u call_user_start -Wl,-static
+CFLAGS = -Wall -Os -fno-inline-functions -mlongcalls -DICACHE_FLASH -I. \
+        -I$(SDKDIR)/xtensa-lx106-elf/include
+LDFLAGS = -nostdlib -Wl,--no-check-sections -Wl,--gc-sections -Wl,-static \
+         -u call_user_start \
+         -L$(SDKDIR)/xtensa-lx106-elf/lib
 
 APP = clock
 OBJS = user_main.o max7219.o spi.o clock.o
@@ -35,6 +38,6 @@ project_config.h:
        echo '#define CFG_WIFI_PASSWORD "password"' >> $@
 
 clean:
-       rm -f $(OBJS) $(APP)_app.a $(APP).elf rom0.bin rom1.bin
+       rm -f $(OBJS) $(APP)_app.a rom0.elf rom1.elf rom0.bin rom1.bin
 
 .PHONY: all clean
diff --git a/clock.c b/clock.c
index 241b64cf8aea4e5b9c6189cd5e31c33e8fef2c3e..e8df6699ba50d133818dfb128a16aac09733ffe4 100644 (file)
--- a/clock.c
+++ b/clock.c
@@ -44,8 +44,6 @@
 #include <mem.h>
 #include <osapi.h>
 
-#include "espmissingincludes.h"
-
 #include "clock.h"
 
 #define NTP_SERVER     "uk.pool.ntp.org"
index 12c559ecbd0fd3076bd2e0e6f7e9216fc3ecf6cb..0aa7bd6d3d34ce74e9a33784ed84813bf20713a2 100644 (file)
--- a/max7219.c
+++ b/max7219.c
@@ -23,7 +23,6 @@
 #include <os_type.h>
 #include <gpio.h>
 
-#include "espmissingincludes.h"
 #include "max7219.h"
 #include "spi.h"
 
diff --git a/rom0.ld b/rom0.ld
index 0d45739df2960e3ac86c3ff51e2bcc46b864e3b5..1e5f3277e79c1f82babef81fe955194b884f87df 100644 (file)
--- a/rom0.ld
+++ b/rom0.ld
@@ -5,7 +5,7 @@ MEMORY
   dport0_0_seg :                        org = 0x3FF00000, len = 0x10
   dram0_0_seg :                         org = 0x3FFE8000, len = 0x14000
   iram1_0_seg :                         org = 0x40100000, len = 0x8000
-  irom0_0_seg :                         org = 0x40202010, len = 0x3C000
+  irom0_0_seg :                         org = 0x40201010, len = 0x6B000
 }
 
 PHDRS
@@ -151,6 +151,31 @@ SECTIONS
   } >dram0_0_seg :dram0_0_bss_phdr
 /* __stack = 0x3ffc8000; */
 
+  .irom0.text : ALIGN(4)
+  {
+    _irom0_text_start = ABSOLUTE(.);
+
+    *libat.a:(.literal.* .text.*)
+    *libcrypto.a:(.literal.* .text.*)
+    *libespnow.a:(.literal.* .text.*)
+    *libjson.a:(.literal.* .text.*)
+    *liblwip.a:(.literal.* .text.*)
+    *libnet80211.a:(.literal.* .text.*)
+    *libsmartconfig.a:(.literal.* .text.*)
+    *libssl.a:(.literal.* .text.*)
+    *libupgrade.a:(.literal.* .text.*)
+    *libwpa.a:(.literal.* .text.*)
+    *libwpa2.a:(.literal.* .text.*)
+    *libwps.a:(.literal.* .text.*)
+
+    *libmbedtls.a:(.literal.* .text.*)
+
+    *libm.a:(.literal .text .literal.* .text.*)
+
+    *(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text)
+    _irom0_text_end = ABSOLUTE(.);
+  } >irom0_0_seg :irom0_0_phdr
+
   .text : ALIGN(4)
   {
     _stext = .;
@@ -198,13 +223,6 @@ SECTIONS
     *(.gnu.linkonce.lit4.*)
     _lit4_end = ABSOLUTE(.);
   } >iram1_0_seg :iram1_0_phdr
-
-  .irom0.text : ALIGN(4)
-  {
-    _irom0_text_start = ABSOLUTE(.);
-    *(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text)
-    _irom0_text_end = ABSOLUTE(.);
-  } >irom0_0_seg :irom0_0_phdr
 }
 
 /* get ROM code address */
diff --git a/rom1.ld b/rom1.ld
index 4bfe271dd5ace32c7b9606c97745d452cc1bb81b..c0bfae55bea643f8e34537cba774a3d1ed371322 100644 (file)
--- a/rom1.ld
+++ b/rom1.ld
@@ -5,7 +5,7 @@ MEMORY
   dport0_0_seg :                        org = 0x3FF00000, len = 0x10
   dram0_0_seg :                         org = 0x3FFE8000, len = 0x14000
   iram1_0_seg :                         org = 0x40100000, len = 0x8000
-  irom0_0_seg :                         org = 0x40242010, len = 0x3C000
+  irom0_0_seg :                         org = 0x40281010, len = 0x6B000
 }
 
 PHDRS
@@ -151,6 +151,31 @@ SECTIONS
   } >dram0_0_seg :dram0_0_bss_phdr
 /* __stack = 0x3ffc8000; */
 
+  .irom0.text : ALIGN(4)
+  {
+    _irom0_text_start = ABSOLUTE(.);
+
+    *libat.a:(.literal.* .text.*)
+    *libcrypto.a:(.literal.* .text.*)
+    *libespnow.a:(.literal.* .text.*)
+    *libjson.a:(.literal.* .text.*)
+    *liblwip.a:(.literal.* .text.*)
+    *libnet80211.a:(.literal.* .text.*)
+    *libsmartconfig.a:(.literal.* .text.*)
+    *libssl.a:(.literal.* .text.*)
+    *libupgrade.a:(.literal.* .text.*)
+    *libwpa.a:(.literal.* .text.*)
+    *libwpa2.a:(.literal.* .text.*)
+    *libwps.a:(.literal.* .text.*)
+
+    *libmbedtls.a:(.literal.* .text.*)
+
+    *libm.a:(.literal .text .literal.* .text.*)
+
+    *(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text)
+    _irom0_text_end = ABSOLUTE(.);
+  } >irom0_0_seg :irom0_0_phdr
+
   .text : ALIGN(4)
   {
     _stext = .;
@@ -198,13 +223,6 @@ SECTIONS
     *(.gnu.linkonce.lit4.*)
     _lit4_end = ABSOLUTE(.);
   } >iram1_0_seg :iram1_0_phdr
-
-  .irom0.text : ALIGN(4)
-  {
-    _irom0_text_start = ABSOLUTE(.);
-    *(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text)
-    _irom0_text_end = ABSOLUTE(.);
-  } >irom0_0_seg :irom0_0_phdr
 }
 
 /* get ROM code address */
index 148477131bdbddf4271e62f9a67a6c8c1d2a9a0c..0ec605604293ea8c4fb45ac807379e2b06a4f1e8 100644 (file)
@@ -19,8 +19,6 @@
 #include <os_type.h>
 #include <user_interface.h>
 
-#include "espmissingincludes.h"
-
 #include "project_config.h"
 
 #include "clock.h"