Skip to content

Commit 2b06d0e

Browse files
Archcadyadbridge
authored andcommitted
Fix ARMCC & IAR compile errors
1 parent 1e5f4f8 commit 2b06d0e

File tree

4 files changed

+22
-15
lines changed

4 files changed

+22
-15
lines changed

targets/TARGET_Realtek/TARGET_AMEBA/TARGET_RTL8195A/device/TOOLCHAIN_ARM_STD/rtl8195a.sct

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ LR_RAM 0x10006000 0x6FFFF {
3838
.ANY (+ZI)
3939
}
4040

41+
ARM_LIB_STACK (0x10070000 - 0x1000) EMPTY 0x1000 {
42+
}
43+
4144
TCM_OVERLAY 0x1FFF0000 0x10000{
4245
lwip_mem.o(.bss*)
4346
lwip_memp.o(.bss*)

targets/TARGET_Realtek/TARGET_AMEBA/TARGET_RTL8195A/device/rtl8195a_init.c

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -105,15 +105,15 @@ void __TRAP_HardFaultHandler_Patch(uint32_t addr)
105105
uint32_t stackpc;
106106
uint16_t asmcode;
107107

108-
cfsr = __HAL_READ32(0xE000ED28, 0x0);
108+
cfsr = HAL_READ32(0xE000ED28, 0x0);
109109

110110
// Violation to memory access protection
111111
if (cfsr & 0x82) {
112112

113-
bfar = __HAL_READ32(0xE000ED38, 0x0);
113+
bfar = HAL_READ32(0xE000ED38, 0x0);
114114

115115
// invalid access to wifi register, usually happened in LPS 32K or IPS
116-
if (bfar >= WLAN_BASE && bfar < WLAN_BASE + 0x40000) {
116+
if (bfar >= WIFI_REG_BASE && bfar < WIFI_REG_BASE + 0x40000) {
117117

118118
//__BKPT(0);
119119

@@ -128,18 +128,18 @@ void __TRAP_HardFaultHandler_Patch(uint32_t addr)
128128
* However, the fault assembly code (Ex. LDR or ADR) is not actually executed,
129129
* So the register value is un-predictable.
130130
**/
131-
stackpc = __HAL_READ32(addr, 0x18);
132-
asmcode = __HAL_READ16(stackpc, 0);
131+
stackpc = HAL_READ32(addr, 0x18);
132+
asmcode = HAL_READ16(stackpc, 0);
133133
if ((asmcode & 0xF800) > 0xE000) {
134134
// 32-bit instruction, (opcode[15:11] = 0b11111, 0b11110, 0b11101)
135-
__HAL_WRITE32(addr, 0x18, stackpc + 4);
135+
HAL_WRITE32(addr, 0x18, stackpc + 4);
136136
} else {
137137
// 16-bit instruction
138-
__HAL_WRITE32(addr, 0x18, stackpc + 2);
138+
HAL_WRITE32(addr, 0x18, stackpc + 2);
139139
}
140140

141141
// clear Hard Fault Status Register
142-
__HAL_WRITE32(0xE000ED2C, 0x0, __HAL_READ32(0xE000ED2C, 0x0));
142+
HAL_WRITE32(0xE000ED2C, 0x0, HAL_READ32(0xE000ED2C, 0x0));
143143
return;
144144
}
145145
}
@@ -181,11 +181,11 @@ void PLAT_Start(void)
181181
#endif
182182

183183
// Clear RAM BSS
184-
#ifdef __GNUC__
184+
#if defined (__ICCARM__) || defined (__CC_ARM)
185+
__memset((void *)__bss_start__, 0, __bss_end__ - __bss_start__);
186+
#else
185187
__memset((void *)__bss_sram1_start__, 0, __bss_sram1_end__ - __bss_sram1_start__);
186188
__memset((void *)__bss_sram2_start__, 0, __bss_sram2_end__ - __bss_sram2_start__);
187-
#else
188-
__memset((void *)__bss_start__, 0, __bss_end__ - __bss_start__);
189189
#endif
190190

191191
#if defined (__CC_ARM)

targets/TARGET_Realtek/TARGET_AMEBA/ota_api.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ uint32_t OTA_UpdateImage(uint32_t offset, uint32_t len, uint8_t *data)
104104
shift = start - addr;
105105
count = MIN(FLASH_SECTOR_SIZE - shift, len);
106106
flash_ext_stream_read(&flash_obj, addr, shift, buf);
107-
memcpy((void *)buf + shift, (void *)pdata, count);
107+
memcpy((void *)(buf + shift), (void *)pdata, count);
108108

109109
flash_ext_erase_sector(&flash_obj, addr);
110110
flash_ext_stream_write(&flash_obj, addr, FLASH_SECTOR_SIZE, buf);

tools/targets/REALTEK_RTL8195AM.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,6 @@ def get_version_by_time():
5959
secs = int((datetime.now()-datetime(2016,11,1)).total_seconds())
6060
return RAM2_VER + secs
6161

62-
# ----------------------------
63-
# main function
64-
# ----------------------------
6562
def prepend(image, entry, segment, image_ram2, image_ota):
6663

6764
# parse input arguments
@@ -229,6 +226,13 @@ def parse_load_segment(toolchain, image_elf):
229226

230227
def write_load_segment(image_elf, image_bin, segment):
231228
file_elf = open(image_elf, "rb")
229+
#delete folder with same name when using ARMCC
230+
if os.path.isfile(image_bin):
231+
pass
232+
else:
233+
for i in os.listdir(image_bin):
234+
os.remove(os.path.join(image_bin, i))
235+
os.removedirs(image_bin)
232236
file_bin = open(image_bin, "wb")
233237
for (offset, addr, size) in segment:
234238
file_elf.seek(offset)

0 commit comments

Comments
 (0)