Ну да, вот весь файл - > Несколько смущает странная арифметика:
В программе объявлено три константных массива -
FONT - размер 0x3B60
FONT1 - размер 0x64F0
BAR - размер 0x02F8
Итого - размер 0xA348 или 41800 байт константных данных. А в самом низу указывается что данных только
15216 байт, остальное - исполняемый код? Я что то не так понимаю?
###############################################################################
# #
# IAR ELF Linker V6.30.8.53653/W32 for ARM 07/Sep/2012 14:15:56 #
# Copyright 2007-2012 IAR Systems AB. #
# #
# Output file = D:\STM32_project\OLED\Debug\Exe\c.out #
# Map file = D:\STM32_project\OLED\Debug\List\c.map #
# Command line = D:\STM32_project\OLED\Debug\Obj\main.o -o #
# D:\STM32_project\OLED\Debug\Exe\c.out --redirect #
# _Printf=_PrintfFull --redirect _Scanf=_ScanfFull --map #
# D:\STM32_project\OLED\Debug\List\c.map --config #
# "C:\Program Files (x86)\IAR Systems\Embedded Workbench #
# 6.0\arm\config\linker\ST\stm32f103x8.icf" --semihosting #
# --entry __iar_program_start --vfe #
# #
# #
###############################################################################
*******************************************************************************
*** RUNTIME MODEL ATTRIBUTES
***
CppFlavor = *
__SystemLibrary = DLib
*******************************************************************************
*** PLACEMENT SUMMARY
***
"A1": place at 0x08000000 { ro section .intvec };
"P1": place in [from 0x08000000 to 0x0800ffff] { ro };
"P2": place in [from 0x20000000 to 0x20004fff] { rw, block CSTACK, block HEAP };
Section Kind Address Size Object
------- ---- ------- ---- ------
"A1": 0x40
.intvec ro code 0x08000000 0x40 vector_table_M.o [4]
- 0x08000040 0x40
"P1": 0xb328
.text ro code 0x08000040 0x771c main.o [1]
.rodata const 0x0800775c 0x3b60 main.o [1]
.text ro code 0x0800b2bc 0x2c data_init3.o [4]
.text ro code 0x0800b2e8 0x22 zero_init3.o [4]
.text ro code 0x0800b30a 0x2 vector_table_M.o [4]
.iar.init_table const 0x0800b30c 0x10 - Linker created -
.text ro code 0x0800b31c 0x16 cmain.o [4]
.text ro code 0x0800b332 0x4 low_level_init.o [3]
.text ro code 0x0800b336 0x4 exit.o [3]
.text ro code 0x0800b33c 0xa cexit.o [4]
.text ro code 0x0800b348 0x14 exit.o [5]
.text ro code 0x0800b35c 0xc cstartup_M.o [4]
.rodata const 0x0800b368 0x0 bwt_init3c.o [4]
- 0x0800b368 0xb328
"P2", part 1 of 2: 0x20
.bss zero 0x20000000 0x14 main.o [1]
.bss zero 0x20000014 0x4 main.o [1]
.bss zero 0x20000018 0x4 main.o [1]
.bss zero 0x2000001c 0x1 main.o [1]
- 0x2000001d 0x1d
"P2", part 2 of 2: 0x800
CSTACK 0x20000020 0x800 <Block>
CSTACK uninit 0x20000020 0x800 <Block tail>
- 0x20000820 0x800
*******************************************************************************
*** INIT TABLE
***
Address Size
------- ----
Zero (__iar_zero_init3)
1 destination range, total size 0x1d:
0x20000000 0x1d
*******************************************************************************
*** MODULE SUMMARY
***
Module ro code ro data rw data
------ ------- ------- -------
D:\STM32_project\OLED\Debug\Obj: [1]
main.o 30 492 15 200 29
-------------------------------------------
Total: 30 492 15 200 29
command line: [2]
-------------------------------------------
Total:
dl7M_tln.a: [3]
exit.o 4
low_level_init.o 4
-------------------------------------------
Total: 8
rt7M_tl.a: [4]
bwt_init3c.o
cexit.o 10
cmain.o 22
cstartup_M.o 12
data_init3.o 44
vector_table_M.o 66
zero_init3.o 34
-------------------------------------------
Total: 188
shb_l.a: [5]
exit.o 20
-------------------------------------------
Total: 20
Gaps 4
Linker created 16 2 048
-----------------------------------------------
Grand Total: 30 712 15 216 2 077
*******************************************************************************
*** ENTRY LIST
***
Entry Address Size Type Object
----- ------- ---- ---- ------
?main 0x0800b31d Code Gb cmain.o [4]
BAR 0x0800736c 0x2f8 Data Gb main.o [1]
BusFault_Handler 0x0800b30b Code Wk vector_table_M.o [4]
CSTACK$$Base 0x20000020 -- Gb - Linker created -
CSTACK$$Limit 0x20000820 -- Gb - Linker created -
DIG0 0x20000002 0x1 Data Gb main.o [1]
DIG1 0x20000003 0x1 Data Gb main.o [1]
DIG2 0x20000004 0x1 Data Gb main.o [1]
DIG3 0x20000005 0x1 Data Gb main.o [1]
DISPLAY_INIT 0x080003f3 0x63c Code Gb main.o [1]
DebugMon_Handler 0x0800b30b Code Wk vector_table_M.o [4]
Display_Clear 0x0800029b 0x158 Code Gb main.o [1]
FONT 0x0800775c 0x3b60 Data Gb main.o [1]
FONT1 0x08000d28 0x64f0 Data Gb main.o [1]
GPIO_INIT 0x080001ff 0x9c Code Gb main.o [1]
GPIO_Init 0x08000041 0xc4 Code Gb main.o [1]
GPIO_InitStructure 0x20000014 0x4 Data Gb main.o [1]
HSEStartUpStatus 0x2000001c 0x1 Data Gb main.o [1]
HardFault_Handler 0x0800b30b Code Wk vector_table_M.o [4]
MemManage_Handler 0x0800b30b Code Wk vector_table_M.o [4]
NMI_Handler 0x0800b30b Code Wk vector_table_M.o [4]
PUT_BAR 0x08007219 0x152 Code Gb main.o [1]
PUT_DIGIT_D 0x08000b83 0x15a Code Gb main.o [1]
PUT_DIGIT_S 0x08000a2f 0x154 Code Gb main.o [1]
PUT_NUMBER 0x08007665 0xc8 Code Gb main.o [1]
PendSV_Handler 0x0800b30b Code Wk vector_table_M.o [4]
RCC_INIT 0x08000105 0xfa Code Gb main.o [1]
Region$$Table$$Base 0x0800b30c -- Gb - Linker created -
Region$$Table$$Limit 0x0800b31c -- Gb - Linker created -
SVC_Handler 0x0800b30b Code Wk vector_table_M.o [4]
SysTick_Handler 0x0800b30b Code Wk vector_table_M.o [4]
UsageFault_Handler 0x0800b30b Code Wk vector_table_M.o [4]
X 0x20000000 0x1 Data Gb main.o [1]
Y 0x20000001 0x1 Data Gb main.o [1]
__cmain 0x0800b31d Code Gb cmain.o [4]
__exit 0x0800b349 0x14 Code Gb exit.o [5]
__iar_SB 0x0800b368 Data Gb bwt_init3c.o [4]
__iar_data_init3 0x0800b2bd 0x2c Code Gb data_init3.o [4]
__iar_program_start 0x0800b35d Code Gb cstartup_M.o [4]
__iar_zero_init3 0x0800b2e9 0x22 Code Gb zero_init3.o [4]
__low_level_init 0x0800b333 0x4 Code Gb low_level_init.o [3]
__vector_table 0x08000000 Data Gb vector_table_M.o [4]
_call_main 0x0800b329 Code Gb cmain.o [4]
_exit 0x0800b33d Code Gb cexit.o [4]
_main 0x0800b32f Code Gb cmain.o [4]
exit 0x0800b337 0x4 Code Gb exit.o [3]
i 0x20000010 0x4 Data Gb main.o [1]
index 0x2000000c 0x4 Data Gb main.o [1]
main 0x0800772d 0x1e Code Gb main.o [1]
num 0x20000018 0x4 Data Gb main.o [1]
shift0 0x20000006 0x1 Data Gb main.o [1]
shift1 0x20000007 0x1 Data Gb main.o [1]
shift2 0x20000008 0x1 Data Gb main.o [1]
shift3 0x20000009 0x1 Data Gb main.o [1]
[1] = D:\STM32_project\OLED\Debug\Obj
[2] = command line
[3] = dl7M_tln.a
[4] = rt7M_tl.a
[5] = shb_l.a
30 712 bytes of readonly code memory
15 216 bytes of readonly data memory
2 077 bytes of readwrite data memory
Errors: none
Warnings: none