diff --git a/bsp/sam7x/project.uvproj b/bsp/sam7x/project.uvproj
index 18440a3416..b92ff1c7b4 100644
--- a/bsp/sam7x/project.uvproj
+++ b/bsp/sam7x/project.uvproj
@@ -33,8 +33,8 @@
- Atmel\SAM7X\
- Atmel\SAM7X\
+ Atmel\SAM7X\
+ Atmel\SAM7X\
0
0
@@ -46,7 +46,7 @@
rtthread-sam7x
1
0
- 0
+ 1
1
1
.\objs\
@@ -114,9 +114,9 @@
16
- 1
+ 0
1
- 0
+ 1
1
1
1
@@ -125,7 +125,7 @@
0
- 0
+ 1
1
1
1
@@ -135,7 +135,7 @@
1
0
- 2
+ 6
@@ -159,7 +159,7 @@
0
0
1
- 4100
+ 4098
Segger\JLTAgdi.dll
"" ()
@@ -211,9 +211,9 @@
0
0
3
- 3
+ 5
0
- 1
+ 0
0
0
0
diff --git a/bsp/sam7x/rtconfig.py b/bsp/sam7x/rtconfig.py
index 59666f0669..ba912d8c9f 100644
--- a/bsp/sam7x/rtconfig.py
+++ b/bsp/sam7x/rtconfig.py
@@ -53,10 +53,10 @@ elif PLATFORM == 'armcc':
LINK = 'armlink'
TARGET_EXT = 'axf'
- DEVICE = ' --device DARMSS9'
- CFLAGS = DEVICE + ' --apcs=interwork --diag_suppress=870'
+ DEVICE = ' --device DARMATS'
+ CFLAGS = DEVICE + ' --apcs=interwork'
AFLAGS = DEVICE
- LFLAGS = DEVICE + ' --strict --info sizes --info totals --info unused --info veneers --list rtthread-mini2440.map --ro-base 0x30000000 --entry Entry_Point --first Entry_Point'
+ LFLAGS = DEVICE + ' --strict --info sizes --info totals --info unused --info veneers --list sam7x_rom_armcc.map --scatter sam7x_rom.sct'
CFLAGS += ' -I"' + EXEC_PATH + '/ARM/RV31/INC"'
LFLAGS += ' --libpath "' + EXEC_PATH + '/ARM/RV31/LIB"'
@@ -69,7 +69,7 @@ elif PLATFORM == 'armcc':
else:
CFLAGS += ' -O2'
- POST_ACTION = 'fromelf --hex $TARGET --output rtthread-asm7x.hex \nfromelf -z $TARGET'
+ POST_ACTION = 'fromelf --i32 $TARGET --output rtthread-sam7x.hex \nfromelf -z $TARGET'
elif PLATFORM == 'iar':
# toolchains
diff --git a/bsp/sam7x/sam7x_rom.sct b/bsp/sam7x/sam7x_rom.sct
new file mode 100644
index 0000000000..13999ef666
--- /dev/null
+++ b/bsp/sam7x/sam7x_rom.sct
@@ -0,0 +1,15 @@
+; *************************************************************
+; *** Scatter-Loading Description File generated by uVision ***
+; *************************************************************
+
+LR_IROM1 0x00100000 0x00040000 { ; load region size_region
+ ER_IROM1 0x00100000 0x00040000 { ; load address = execution address
+ *.o (RESET, +First)
+ *(InRoot$$Sections)
+ .ANY (+RO)
+ }
+ RW_IRAM1 0x00200000 0x00010000 { ; RW data
+ .ANY (+RW +ZI)
+ }
+}
+