boot V1.01.04: download CLI 移植 UP/DOWN 历史导航
- Boot/src/boot_cli.c: 命令历史环形缓冲(8条) + ESC [ A/B 箭头历史导航, 回车入栈/重画提示符+整行, shownLen 同步维护 - help 提示串更新为 'keys: TAB = complete, UP/DOWN = history' (与 APP 一致) - Boot/src/boot_version.h: V1.01.03 -> V1.01.04 - docs/开发日志.md: 新增 §56
This commit is contained in:
parent
17e814a883
commit
8b1744744e
@ -93,6 +93,11 @@ Section Cross References
|
|||||||
boot_cli.o(i.boot_cli_run) refers to app_ota.o(i.app_ota_chan_idle) for app_ota_chan_idle
|
boot_cli.o(i.boot_cli_run) refers to app_ota.o(i.app_ota_chan_idle) for app_ota_chan_idle
|
||||||
boot_cli.o(i.boot_cli_run) refers to boot_usart.o(i.boot_usart_read) for boot_usart_read
|
boot_cli.o(i.boot_cli_run) refers to boot_usart.o(i.boot_usart_read) for boot_usart_read
|
||||||
boot_cli.o(i.boot_cli_run) refers to app_ota.o(i.app_ota_chan_rx_uart) for app_ota_chan_rx_uart
|
boot_cli.o(i.boot_cli_run) refers to app_ota.o(i.app_ota_chan_rx_uart) for app_ota_chan_rx_uart
|
||||||
|
boot_cli.o(i.boot_cli_run) refers to boot_cli.o(i.cli_history_get) for cli_history_get
|
||||||
|
boot_cli.o(i.boot_cli_run) refers to strcpy.o(.text) for strcpy
|
||||||
|
boot_cli.o(i.boot_cli_run) refers to boot_cli.o(i.boot_cli_redraw) for boot_cli_redraw
|
||||||
|
boot_cli.o(i.boot_cli_run) refers to strlen.o(.text) for strlen
|
||||||
|
boot_cli.o(i.boot_cli_run) refers to boot_cli.o(i.cli_history_add) for cli_history_add
|
||||||
boot_cli.o(i.boot_cli_run) refers to boot_cli.o(i.cli_exec_line) for cli_exec_line
|
boot_cli.o(i.boot_cli_run) refers to boot_cli.o(i.cli_exec_line) for cli_exec_line
|
||||||
boot_cli.o(i.boot_cli_run) refers to boot_cli.o(i.boot_cli_tab_complete) for boot_cli_tab_complete
|
boot_cli.o(i.boot_cli_run) refers to boot_cli.o(i.boot_cli_tab_complete) for boot_cli_tab_complete
|
||||||
boot_cli.o(i.boot_cli_run) refers to boot_usart.o(i.boot_usart_write) for boot_usart_write
|
boot_cli.o(i.boot_cli_run) refers to boot_usart.o(i.boot_usart_write) for boot_usart_write
|
||||||
@ -110,6 +115,12 @@ Section Cross References
|
|||||||
boot_cli.o(i.cli_exec_line) refers to strcmp.o(.text) for strcmp
|
boot_cli.o(i.cli_exec_line) refers to strcmp.o(.text) for strcmp
|
||||||
boot_cli.o(i.cli_exec_line) refers to boot_cli.o(i.cli_printf) for cli_printf
|
boot_cli.o(i.cli_exec_line) refers to boot_cli.o(i.cli_printf) for cli_printf
|
||||||
boot_cli.o(i.cli_exec_line) refers to boot_cli.o(.constdata) for s_cmds
|
boot_cli.o(i.cli_exec_line) refers to boot_cli.o(.constdata) for s_cmds
|
||||||
|
boot_cli.o(i.cli_history_add) refers to strcmp.o(.text) for strcmp
|
||||||
|
boot_cli.o(i.cli_history_add) refers to strcpy.o(.text) for strcpy
|
||||||
|
boot_cli.o(i.cli_history_add) refers to boot_cli.o(.data) for s_histCount
|
||||||
|
boot_cli.o(i.cli_history_add) refers to boot_cli.o(.bss) for s_history
|
||||||
|
boot_cli.o(i.cli_history_get) refers to boot_cli.o(.data) for s_histHead
|
||||||
|
boot_cli.o(i.cli_history_get) refers to boot_cli.o(.bss) for s_history
|
||||||
boot_cli.o(i.cli_printf) refers to boot_cli.o(i.str_pad) for str_pad
|
boot_cli.o(i.cli_printf) refers to boot_cli.o(i.str_pad) for str_pad
|
||||||
boot_cli.o(i.cli_printf) refers to boot_cli.o(i.u32_to_str) for u32_to_str
|
boot_cli.o(i.cli_printf) refers to boot_cli.o(i.u32_to_str) for u32_to_str
|
||||||
boot_cli.o(i.cli_printf) refers to boot_cli.o(i.cli_write) for cli_write
|
boot_cli.o(i.cli_printf) refers to boot_cli.o(i.cli_write) for cli_write
|
||||||
@ -387,38 +398,38 @@ Image Symbol Table
|
|||||||
|
|
||||||
Symbol Name Value Ov Type Size Object(Section)
|
Symbol Name Value Ov Type Size Object(Section)
|
||||||
|
|
||||||
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 ctype_o.o ABSOLUTE
|
|
||||||
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isalnum_o.o ABSOLUTE
|
|
||||||
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isalpha_o.o ABSOLUTE
|
|
||||||
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isblank_o.o ABSOLUTE
|
|
||||||
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 iscntrl_o.o ABSOLUTE
|
|
||||||
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isdigit_o.o ABSOLUTE
|
|
||||||
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isgraph_o.o ABSOLUTE
|
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isgraph_o.o ABSOLUTE
|
||||||
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isupper_o.o ABSOLUTE
|
|
||||||
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 islower_o.o ABSOLUTE
|
|
||||||
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isprint_o.o ABSOLUTE
|
|
||||||
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 ispunct_o.o ABSOLUTE
|
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 ispunct_o.o ABSOLUTE
|
||||||
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isspace_o.o ABSOLUTE
|
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isupper_o.o ABSOLUTE
|
||||||
|
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isprint_o.o ABSOLUTE
|
||||||
|
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 islower_o.o ABSOLUTE
|
||||||
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isxdigit_o.o ABSOLUTE
|
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isxdigit_o.o ABSOLUTE
|
||||||
|
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isdigit_o.o ABSOLUTE
|
||||||
|
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 iscntrl_o.o ABSOLUTE
|
||||||
|
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isblank_o.o ABSOLUTE
|
||||||
|
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isalpha_o.o ABSOLUTE
|
||||||
|
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isalnum_o.o ABSOLUTE
|
||||||
|
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 ctype_o.o ABSOLUTE
|
||||||
|
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isspace_o.o ABSOLUTE
|
||||||
../clib/microlib/division.c 0x00000000 Number 0 uidiv.o ABSOLUTE
|
../clib/microlib/division.c 0x00000000 Number 0 uidiv.o ABSOLUTE
|
||||||
../clib/microlib/errno.c 0x00000000 Number 0 errno.o ABSOLUTE
|
../clib/microlib/errno.c 0x00000000 Number 0 errno.o ABSOLUTE
|
||||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE
|
|
||||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
|
|
||||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
|
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
|
||||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE
|
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
|
||||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
|
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE
|
||||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
|
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
|
||||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
|
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
|
||||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
|
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
|
||||||
|
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
|
||||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
|
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
|
||||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
|
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
|
||||||
|
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
|
||||||
|
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE
|
||||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE
|
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE
|
||||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
|
|
||||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
|
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
|
||||||
../clib/microlib/string/memchr.c 0x00000000 Number 0 memchr.o ABSOLUTE
|
../clib/microlib/string/memchr.c 0x00000000 Number 0 memchr.o ABSOLUTE
|
||||||
../clib/microlib/string/memcmp.c 0x00000000 Number 0 memcmp.o ABSOLUTE
|
../clib/microlib/string/memcmp.c 0x00000000 Number 0 memcmp.o ABSOLUTE
|
||||||
../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpyb.o ABSOLUTE
|
|
||||||
../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpya.o ABSOLUTE
|
../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpya.o ABSOLUTE
|
||||||
|
../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpyb.o ABSOLUTE
|
||||||
../clib/microlib/string/memset.c 0x00000000 Number 0 memseta.o ABSOLUTE
|
../clib/microlib/string/memset.c 0x00000000 Number 0 memseta.o ABSOLUTE
|
||||||
../clib/microlib/string/strcmp.c 0x00000000 Number 0 strcmp.o ABSOLUTE
|
../clib/microlib/string/strcmp.c 0x00000000 Number 0 strcmp.o ABSOLUTE
|
||||||
../clib/microlib/string/strcpy.c 0x00000000 Number 0 strcpy.o ABSOLUTE
|
../clib/microlib/string/strcpy.c 0x00000000 Number 0 strcpy.o ABSOLUTE
|
||||||
@ -488,134 +499,140 @@ Image Symbol Table
|
|||||||
CmdDevInfo 0x01000959 Thumb Code 90 boot_cli.o(i.CmdDevInfo)
|
CmdDevInfo 0x01000959 Thumb Code 90 boot_cli.o(i.CmdDevInfo)
|
||||||
i.CmdHelp 0x01000a38 Section 0 boot_cli.o(i.CmdHelp)
|
i.CmdHelp 0x01000a38 Section 0 boot_cli.o(i.CmdHelp)
|
||||||
CmdHelp 0x01000a39 Thumb Code 120 boot_cli.o(i.CmdHelp)
|
CmdHelp 0x01000a39 Thumb Code 120 boot_cli.o(i.CmdHelp)
|
||||||
i.CmdOta 0x01000b08 Section 0 boot_cli.o(i.CmdOta)
|
i.CmdOta 0x01000b1c Section 0 boot_cli.o(i.CmdOta)
|
||||||
CmdOta 0x01000b09 Thumb Code 20 boot_cli.o(i.CmdOta)
|
CmdOta 0x01000b1d Thumb Code 20 boot_cli.o(i.CmdOta)
|
||||||
i.CmdReset 0x01000b24 Section 0 boot_cli.o(i.CmdReset)
|
i.CmdReset 0x01000b38 Section 0 boot_cli.o(i.CmdReset)
|
||||||
CmdReset 0x01000b25 Thumb Code 34 boot_cli.o(i.CmdReset)
|
CmdReset 0x01000b39 Thumb Code 34 boot_cli.o(i.CmdReset)
|
||||||
i.CmdUartInfo 0x01000b60 Section 0 boot_cli.o(i.CmdUartInfo)
|
i.CmdUartInfo 0x01000b74 Section 0 boot_cli.o(i.CmdUartInfo)
|
||||||
CmdUartInfo 0x01000b61 Thumb Code 26 boot_cli.o(i.CmdUartInfo)
|
CmdUartInfo 0x01000b75 Thumb Code 26 boot_cli.o(i.CmdUartInfo)
|
||||||
i.CmdVersion 0x01000c10 Section 0 boot_cli.o(i.CmdVersion)
|
i.CmdVersion 0x01000c24 Section 0 boot_cli.o(i.CmdVersion)
|
||||||
CmdVersion 0x01000c11 Thumb Code 26 boot_cli.o(i.CmdVersion)
|
CmdVersion 0x01000c25 Thumb Code 26 boot_cli.o(i.CmdVersion)
|
||||||
i.DMA_DeInit 0x01000c84 Section 0 n32wb03x_dma.o(i.DMA_DeInit)
|
i.DMA_DeInit 0x01000c98 Section 0 n32wb03x_dma.o(i.DMA_DeInit)
|
||||||
i.DMA_EnableChannel 0x01000d24 Section 0 n32wb03x_dma.o(i.DMA_EnableChannel)
|
i.DMA_EnableChannel 0x01000d38 Section 0 n32wb03x_dma.o(i.DMA_EnableChannel)
|
||||||
i.DMA_GetCurrDataCounter 0x01000d40 Section 0 n32wb03x_dma.o(i.DMA_GetCurrDataCounter)
|
i.DMA_GetCurrDataCounter 0x01000d54 Section 0 n32wb03x_dma.o(i.DMA_GetCurrDataCounter)
|
||||||
i.DMA_Init 0x01000d48 Section 0 n32wb03x_dma.o(i.DMA_Init)
|
i.DMA_Init 0x01000d5c Section 0 n32wb03x_dma.o(i.DMA_Init)
|
||||||
i.DMA_RequestRemap 0x01000d88 Section 0 n32wb03x_dma.o(i.DMA_RequestRemap)
|
i.DMA_RequestRemap 0x01000d9c Section 0 n32wb03x_dma.o(i.DMA_RequestRemap)
|
||||||
i.GPIO_InitPeripheral 0x01000d98 Section 0 n32wb03x_gpio.o(i.GPIO_InitPeripheral)
|
i.GPIO_InitPeripheral 0x01000dac Section 0 n32wb03x_gpio.o(i.GPIO_InitPeripheral)
|
||||||
i.GPIO_InitStruct 0x01000ea0 Section 0 n32wb03x_gpio.o(i.GPIO_InitStruct)
|
i.GPIO_InitStruct 0x01000eb4 Section 0 n32wb03x_gpio.o(i.GPIO_InitStruct)
|
||||||
i.GPIO_ReadInputDataBit 0x01000ebc Section 0 n32wb03x_gpio.o(i.GPIO_ReadInputDataBit)
|
i.GPIO_ReadInputDataBit 0x01000ed0 Section 0 n32wb03x_gpio.o(i.GPIO_ReadInputDataBit)
|
||||||
i.OTPTrim_Read 0x01000ed0 Section 0 system_n32wb03x.o(i.OTPTrim_Read)
|
i.OTPTrim_Read 0x01000ee4 Section 0 system_n32wb03x.o(i.OTPTrim_Read)
|
||||||
i.Qflash_Erase_Sector 0x01000f9c Section 0 n32wb03x_qflash.o(i.Qflash_Erase_Sector)
|
i.Qflash_Erase_Sector 0x01000fb0 Section 0 n32wb03x_qflash.o(i.Qflash_Erase_Sector)
|
||||||
i.Qflash_Init 0x01000fd8 Section 0 n32wb03x_qflash.o(i.Qflash_Init)
|
i.Qflash_Init 0x01000fec Section 0 n32wb03x_qflash.o(i.Qflash_Init)
|
||||||
i.Qflash_Write 0x01001010 Section 0 n32wb03x_qflash.o(i.Qflash_Write)
|
i.Qflash_Write 0x01001024 Section 0 n32wb03x_qflash.o(i.Qflash_Write)
|
||||||
i.RCC_EnableAHBPeriphClk 0x01001054 Section 0 n32wb03x_rcc.o(i.RCC_EnableAHBPeriphClk)
|
i.RCC_EnableAHBPeriphClk 0x01001068 Section 0 n32wb03x_rcc.o(i.RCC_EnableAHBPeriphClk)
|
||||||
i.RCC_EnableAPB2PeriphClk 0x01001074 Section 0 n32wb03x_rcc.o(i.RCC_EnableAPB2PeriphClk)
|
i.RCC_EnableAPB2PeriphClk 0x01001088 Section 0 n32wb03x_rcc.o(i.RCC_EnableAPB2PeriphClk)
|
||||||
i.RCC_GetClocksFreqValue 0x01001094 Section 0 n32wb03x_rcc.o(i.RCC_GetClocksFreqValue)
|
i.RCC_GetClocksFreqValue 0x010010a8 Section 0 n32wb03x_rcc.o(i.RCC_GetClocksFreqValue)
|
||||||
i.RCC_HsiCalib 0x01001138 Section 0 system_n32wb03x.o(i.RCC_HsiCalib)
|
i.RCC_HsiCalib 0x0100114c Section 0 system_n32wb03x.o(i.RCC_HsiCalib)
|
||||||
RCC_HsiCalib 0x01001139 Thumb Code 296 system_n32wb03x.o(i.RCC_HsiCalib)
|
RCC_HsiCalib 0x0100114d Thumb Code 296 system_n32wb03x.o(i.RCC_HsiCalib)
|
||||||
i.SystemInit 0x01001268 Section 0 system_n32wb03x.o(i.SystemInit)
|
i.SystemInit 0x0100127c Section 0 system_n32wb03x.o(i.SystemInit)
|
||||||
i.SystemTrimValueRead 0x01001384 Section 0 system_n32wb03x.o(i.SystemTrimValueRead)
|
i.SystemTrimValueRead 0x01001398 Section 0 system_n32wb03x.o(i.SystemTrimValueRead)
|
||||||
i.USART_Enable 0x01001398 Section 0 n32wb03x_usart.o(i.USART_Enable)
|
i.USART_Enable 0x010013ac Section 0 n32wb03x_usart.o(i.USART_Enable)
|
||||||
i.USART_EnableDMA 0x010013b8 Section 0 n32wb03x_usart.o(i.USART_EnableDMA)
|
i.USART_EnableDMA 0x010013cc Section 0 n32wb03x_usart.o(i.USART_EnableDMA)
|
||||||
i.USART_GetFlagStatus 0x010013cc Section 0 n32wb03x_usart.o(i.USART_GetFlagStatus)
|
i.USART_GetFlagStatus 0x010013e0 Section 0 n32wb03x_usart.o(i.USART_GetFlagStatus)
|
||||||
i.USART_Init 0x010013ec Section 0 n32wb03x_usart.o(i.USART_Init)
|
i.USART_Init 0x01001400 Section 0 n32wb03x_usart.o(i.USART_Init)
|
||||||
i.USART_SendData 0x010014a0 Section 0 n32wb03x_usart.o(i.USART_SendData)
|
i.USART_SendData 0x010014b4 Section 0 n32wb03x_usart.o(i.USART_SendData)
|
||||||
i.__aeabi_errno_addr 0x010014a8 Section 0 errno.o(i.__aeabi_errno_addr)
|
i.__aeabi_errno_addr 0x010014bc Section 0 errno.o(i.__aeabi_errno_addr)
|
||||||
i.__scatterload_copy 0x010014b0 Section 14 handlers.o(i.__scatterload_copy)
|
i.__scatterload_copy 0x010014c4 Section 14 handlers.o(i.__scatterload_copy)
|
||||||
i.__scatterload_null 0x010014be Section 2 handlers.o(i.__scatterload_null)
|
i.__scatterload_null 0x010014d2 Section 2 handlers.o(i.__scatterload_null)
|
||||||
i.__scatterload_zeroinit 0x010014c0 Section 14 handlers.o(i.__scatterload_zeroinit)
|
i.__scatterload_zeroinit 0x010014d4 Section 14 handlers.o(i.__scatterload_zeroinit)
|
||||||
i.__set_PRIMASK 0x010014ce Section 0 system_n32wb03x.o(i.__set_PRIMASK)
|
i.__set_PRIMASK 0x010014e2 Section 0 system_n32wb03x.o(i.__set_PRIMASK)
|
||||||
__set_PRIMASK 0x010014cf Thumb Code 6 system_n32wb03x.o(i.__set_PRIMASK)
|
__set_PRIMASK 0x010014e3 Thumb Code 6 system_n32wb03x.o(i.__set_PRIMASK)
|
||||||
i.__set_PRIMASK 0x010014d4 Section 0 n32wb03x_qflash.o(i.__set_PRIMASK)
|
i.__set_PRIMASK 0x010014e8 Section 0 n32wb03x_qflash.o(i.__set_PRIMASK)
|
||||||
__set_PRIMASK 0x010014d5 Thumb Code 6 n32wb03x_qflash.o(i.__set_PRIMASK)
|
__set_PRIMASK 0x010014e9 Thumb Code 6 n32wb03x_qflash.o(i.__set_PRIMASK)
|
||||||
i.app_ota_abort 0x010014dc Section 0 app_ota.o(i.app_ota_abort)
|
i.app_ota_abort 0x010014f0 Section 0 app_ota.o(i.app_ota_abort)
|
||||||
i.app_ota_chan_idle 0x01001518 Section 0 app_ota.o(i.app_ota_chan_idle)
|
i.app_ota_chan_idle 0x0100152c Section 0 app_ota.o(i.app_ota_chan_idle)
|
||||||
i.app_ota_chan_rx 0x0100152c Section 0 app_ota.o(i.app_ota_chan_rx)
|
i.app_ota_chan_rx 0x01001540 Section 0 app_ota.o(i.app_ota_chan_rx)
|
||||||
i.app_ota_chan_rx_uart 0x0100166c Section 0 app_ota.o(i.app_ota_chan_rx_uart)
|
i.app_ota_chan_rx_uart 0x01001680 Section 0 app_ota.o(i.app_ota_chan_rx_uart)
|
||||||
i.app_ota_handle_frame 0x01001690 Section 0 app_ota.o(i.app_ota_handle_frame)
|
i.app_ota_handle_frame 0x010016a4 Section 0 app_ota.o(i.app_ota_handle_frame)
|
||||||
i.app_ota_reset_poll 0x0100170c Section 0 app_ota.o(i.app_ota_reset_poll)
|
i.app_ota_reset_poll 0x01001720 Section 0 app_ota.o(i.app_ota_reset_poll)
|
||||||
i.boot_cli_redraw 0x01001768 Section 0 boot_cli.o(i.boot_cli_redraw)
|
i.boot_cli_redraw 0x0100177c Section 0 boot_cli.o(i.boot_cli_redraw)
|
||||||
boot_cli_redraw 0x01001769 Thumb Code 60 boot_cli.o(i.boot_cli_redraw)
|
boot_cli_redraw 0x0100177d Thumb Code 60 boot_cli.o(i.boot_cli_redraw)
|
||||||
i.boot_cli_run 0x010017b4 Section 0 boot_cli.o(i.boot_cli_run)
|
i.boot_cli_run 0x010017c8 Section 0 boot_cli.o(i.boot_cli_run)
|
||||||
i.boot_cli_tab_complete 0x01001910 Section 0 boot_cli.o(i.boot_cli_tab_complete)
|
i.boot_cli_tab_complete 0x010019e8 Section 0 boot_cli.o(i.boot_cli_tab_complete)
|
||||||
boot_cli_tab_complete 0x01001911 Thumb Code 306 boot_cli.o(i.boot_cli_tab_complete)
|
boot_cli_tab_complete 0x010019e9 Thumb Code 306 boot_cli.o(i.boot_cli_tab_complete)
|
||||||
i.boot_delay_ms 0x01001a54 Section 0 boot_usart.o(i.boot_delay_ms)
|
i.boot_delay_ms 0x01001b2c Section 0 boot_usart.o(i.boot_delay_ms)
|
||||||
i.boot_dl_strap_active 0x01001a6c Section 0 main.o(i.boot_dl_strap_active)
|
i.boot_dl_strap_active 0x01001b44 Section 0 main.o(i.boot_dl_strap_active)
|
||||||
boot_dl_strap_active 0x01001a6d Thumb Code 58 main.o(i.boot_dl_strap_active)
|
boot_dl_strap_active 0x01001b45 Thumb Code 58 main.o(i.boot_dl_strap_active)
|
||||||
i.boot_millis 0x01001aac Section 0 boot_usart.o(i.boot_millis)
|
i.boot_millis 0x01001b84 Section 0 boot_usart.o(i.boot_millis)
|
||||||
i.boot_usart_init 0x01001ad4 Section 0 boot_usart.o(i.boot_usart_init)
|
i.boot_usart_init 0x01001bac Section 0 boot_usart.o(i.boot_usart_init)
|
||||||
i.boot_usart_read 0x01001be4 Section 0 boot_usart.o(i.boot_usart_read)
|
i.boot_usart_read 0x01001cbc Section 0 boot_usart.o(i.boot_usart_read)
|
||||||
i.boot_usart_rx_head 0x01001c24 Section 0 boot_usart.o(i.boot_usart_rx_head)
|
i.boot_usart_rx_head 0x01001cfc Section 0 boot_usart.o(i.boot_usart_rx_head)
|
||||||
boot_usart_rx_head 0x01001c25 Thumb Code 18 boot_usart.o(i.boot_usart_rx_head)
|
boot_usart_rx_head 0x01001cfd Thumb Code 18 boot_usart.o(i.boot_usart_rx_head)
|
||||||
i.boot_usart_write 0x01001c3c Section 0 boot_usart.o(i.boot_usart_write)
|
i.boot_usart_write 0x01001d14 Section 0 boot_usart.o(i.boot_usart_write)
|
||||||
i.bootset_commit 0x01001c6c Section 0 app_bootset.o(i.bootset_commit)
|
i.bootset_commit 0x01001d44 Section 0 app_bootset.o(i.bootset_commit)
|
||||||
bootset_commit 0x01001c6d Thumb Code 74 app_bootset.o(i.bootset_commit)
|
bootset_commit 0x01001d45 Thumb Code 74 app_bootset.o(i.bootset_commit)
|
||||||
i.bootset_crc 0x01001cc0 Section 0 app_bootset.o(i.bootset_crc)
|
i.bootset_crc 0x01001d98 Section 0 app_bootset.o(i.bootset_crc)
|
||||||
bootset_crc 0x01001cc1 Thumb Code 14 app_bootset.o(i.bootset_crc)
|
bootset_crc 0x01001d99 Thumb Code 14 app_bootset.o(i.bootset_crc)
|
||||||
i.bootset_ensure_qflash 0x01001cd0 Section 0 app_bootset.o(i.bootset_ensure_qflash)
|
i.bootset_ensure_qflash 0x01001da8 Section 0 app_bootset.o(i.bootset_ensure_qflash)
|
||||||
bootset_ensure_qflash 0x01001cd1 Thumb Code 22 app_bootset.o(i.bootset_ensure_qflash)
|
bootset_ensure_qflash 0x01001da9 Thumb Code 22 app_bootset.o(i.bootset_ensure_qflash)
|
||||||
i.bootset_print 0x01001cec Section 0 app_bootset.o(i.bootset_print)
|
i.bootset_print 0x01001dc4 Section 0 app_bootset.o(i.bootset_print)
|
||||||
bootset_print 0x01001ced Thumb Code 98 app_bootset.o(i.bootset_print)
|
bootset_print 0x01001dc5 Thumb Code 98 app_bootset.o(i.bootset_print)
|
||||||
i.bootset_valid 0x01001e58 Section 0 app_bootset.o(i.bootset_valid)
|
i.bootset_valid 0x01001f30 Section 0 app_bootset.o(i.bootset_valid)
|
||||||
bootset_valid 0x01001e59 Thumb Code 32 app_bootset.o(i.bootset_valid)
|
bootset_valid 0x01001f31 Thumb Code 32 app_bootset.o(i.bootset_valid)
|
||||||
i.caiic_crc32 0x01001e7c Section 0 boot_crc32.o(i.caiic_crc32)
|
i.caiic_crc32 0x01001f54 Section 0 boot_crc32.o(i.caiic_crc32)
|
||||||
i.cli_exec_line 0x01001ec0 Section 0 boot_cli.o(i.cli_exec_line)
|
i.cli_exec_line 0x01001f98 Section 0 boot_cli.o(i.cli_exec_line)
|
||||||
cli_exec_line 0x01001ec1 Thumb Code 162 boot_cli.o(i.cli_exec_line)
|
cli_exec_line 0x01001f99 Thumb Code 162 boot_cli.o(i.cli_exec_line)
|
||||||
i.cli_printf 0x01001f8c Section 0 boot_cli.o(i.cli_printf)
|
i.cli_history_add 0x01002064 Section 0 boot_cli.o(i.cli_history_add)
|
||||||
i.cli_write 0x01002128 Section 0 boot_cli.o(i.cli_write)
|
cli_history_add 0x01002065 Thumb Code 106 boot_cli.o(i.cli_history_add)
|
||||||
i.image_sane 0x01002140 Section 0 main.o(i.image_sane)
|
i.cli_history_get 0x010020dc Section 0 boot_cli.o(i.cli_history_get)
|
||||||
image_sane 0x01002141 Thumb Code 44 main.o(i.image_sane)
|
cli_history_get 0x010020dd Thumb Code 36 boot_cli.o(i.cli_history_get)
|
||||||
i.jump_to_app 0x01002174 Section 0 main.o(i.jump_to_app)
|
i.cli_printf 0x01002108 Section 0 boot_cli.o(i.cli_printf)
|
||||||
jump_to_app 0x01002175 Thumb Code 30 main.o(i.jump_to_app)
|
i.cli_write 0x010022a4 Section 0 boot_cli.o(i.cli_write)
|
||||||
i.main 0x01002198 Section 0 main.o(i.main)
|
i.image_sane 0x010022bc Section 0 main.o(i.image_sane)
|
||||||
i.ota_crc16 0x0100235c Section 0 app_ota.o(i.ota_crc16)
|
image_sane 0x010022bd Thumb Code 44 main.o(i.image_sane)
|
||||||
ota_crc16 0x0100235d Thumb Code 68 app_ota.o(i.ota_crc16)
|
i.jump_to_app 0x010022f0 Section 0 main.o(i.jump_to_app)
|
||||||
i.ota_erase_up_to 0x010023a8 Section 0 app_ota.o(i.ota_erase_up_to)
|
jump_to_app 0x010022f1 Thumb Code 30 main.o(i.jump_to_app)
|
||||||
ota_erase_up_to 0x010023a9 Thumb Code 54 app_ota.o(i.ota_erase_up_to)
|
i.main 0x01002314 Section 0 main.o(i.main)
|
||||||
i.ota_on_begin 0x010023e8 Section 0 app_ota.o(i.ota_on_begin)
|
i.ota_crc16 0x010024d8 Section 0 app_ota.o(i.ota_crc16)
|
||||||
ota_on_begin 0x010023e9 Thumb Code 294 app_ota.o(i.ota_on_begin)
|
ota_crc16 0x010024d9 Thumb Code 68 app_ota.o(i.ota_crc16)
|
||||||
i.ota_on_data 0x01002558 Section 0 app_ota.o(i.ota_on_data)
|
i.ota_erase_up_to 0x01002524 Section 0 app_ota.o(i.ota_erase_up_to)
|
||||||
ota_on_data 0x01002559 Thumb Code 396 app_ota.o(i.ota_on_data)
|
ota_erase_up_to 0x01002525 Thumb Code 54 app_ota.o(i.ota_erase_up_to)
|
||||||
i.ota_on_end 0x01002700 Section 0 app_ota.o(i.ota_on_end)
|
i.ota_on_begin 0x01002564 Section 0 app_ota.o(i.ota_on_begin)
|
||||||
ota_on_end 0x01002701 Thumb Code 326 app_ota.o(i.ota_on_end)
|
ota_on_begin 0x01002565 Thumb Code 294 app_ota.o(i.ota_on_begin)
|
||||||
i.ota_program 0x01002870 Section 0 app_ota.o(i.ota_program)
|
i.ota_on_data 0x010026d4 Section 0 app_ota.o(i.ota_on_data)
|
||||||
ota_program 0x01002871 Thumb Code 46 app_ota.o(i.ota_program)
|
ota_on_data 0x010026d5 Thumb Code 396 app_ota.o(i.ota_on_data)
|
||||||
i.ota_rd32 0x010028a8 Section 0 app_ota.o(i.ota_rd32)
|
i.ota_on_end 0x0100287c Section 0 app_ota.o(i.ota_on_end)
|
||||||
ota_rd32 0x010028a9 Thumb Code 24 app_ota.o(i.ota_rd32)
|
ota_on_end 0x0100287d Thumb Code 326 app_ota.o(i.ota_on_end)
|
||||||
i.ota_respond 0x010028c0 Section 0 app_ota.o(i.ota_respond)
|
i.ota_program 0x010029ec Section 0 app_ota.o(i.ota_program)
|
||||||
ota_respond 0x010028c1 Thumb Code 118 app_ota.o(i.ota_respond)
|
ota_program 0x010029ed Thumb Code 46 app_ota.o(i.ota_program)
|
||||||
i.ota_uart_sink 0x0100293c Section 0 app_ota.o(i.ota_uart_sink)
|
i.ota_rd32 0x01002a24 Section 0 app_ota.o(i.ota_rd32)
|
||||||
ota_uart_sink 0x0100293d Thumb Code 22 app_ota.o(i.ota_uart_sink)
|
ota_rd32 0x01002a25 Thumb Code 24 app_ota.o(i.ota_rd32)
|
||||||
i.ota_update_bootsetting 0x01002958 Section 0 app_ota.o(i.ota_update_bootsetting)
|
i.ota_respond 0x01002a3c Section 0 app_ota.o(i.ota_respond)
|
||||||
ota_update_bootsetting 0x01002959 Thumb Code 174 app_ota.o(i.ota_update_bootsetting)
|
ota_respond 0x01002a3d Thumb Code 118 app_ota.o(i.ota_respond)
|
||||||
i.parse_u32 0x01002a24 Section 0 app_bootset.o(i.parse_u32)
|
i.ota_uart_sink 0x01002ab8 Section 0 app_ota.o(i.ota_uart_sink)
|
||||||
parse_u32 0x01002a25 Thumb Code 46 app_bootset.o(i.parse_u32)
|
ota_uart_sink 0x01002ab9 Thumb Code 22 app_ota.o(i.ota_uart_sink)
|
||||||
i.puts_boot 0x01002a52 Section 0 main.o(i.puts_boot)
|
i.ota_update_bootsetting 0x01002ad4 Section 0 app_ota.o(i.ota_update_bootsetting)
|
||||||
puts_boot 0x01002a53 Thumb Code 24 main.o(i.puts_boot)
|
ota_update_bootsetting 0x01002ad5 Thumb Code 174 app_ota.o(i.ota_update_bootsetting)
|
||||||
i.read_flash_ID 0x01002a6c Section 0 system_n32wb03x.o(i.read_flash_ID)
|
i.parse_u32 0x01002ba0 Section 0 app_bootset.o(i.parse_u32)
|
||||||
read_flash_ID 0x01002a6d Thumb Code 62 system_n32wb03x.o(i.read_flash_ID)
|
parse_u32 0x01002ba1 Thumb Code 46 app_bootset.o(i.parse_u32)
|
||||||
i.str_pad 0x01002ab0 Section 0 boot_cli.o(i.str_pad)
|
i.puts_boot 0x01002bce Section 0 main.o(i.puts_boot)
|
||||||
str_pad 0x01002ab1 Thumb Code 78 boot_cli.o(i.str_pad)
|
puts_boot 0x01002bcf Thumb Code 24 main.o(i.puts_boot)
|
||||||
i.u32_to_str 0x01002afe Section 0 boot_cli.o(i.u32_to_str)
|
i.read_flash_ID 0x01002be8 Section 0 system_n32wb03x.o(i.read_flash_ID)
|
||||||
u32_to_str 0x01002aff Thumb Code 108 boot_cli.o(i.u32_to_str)
|
read_flash_ID 0x01002be9 Thumb Code 62 system_n32wb03x.o(i.read_flash_ID)
|
||||||
.constdata 0x01002b6a Section 472 system_n32wb03x.o(.constdata)
|
i.str_pad 0x01002c2c Section 0 boot_cli.o(i.str_pad)
|
||||||
.constdata 0x01002d44 Section 108 boot_cli.o(.constdata)
|
str_pad 0x01002c2d Thumb Code 78 boot_cli.o(i.str_pad)
|
||||||
s_cmds 0x01002d44 Data 108 boot_cli.o(.constdata)
|
i.u32_to_str 0x01002c7a Section 0 boot_cli.o(i.u32_to_str)
|
||||||
.constdata 0x01002db0 Section 12 n32wb03x_rcc.o(.constdata)
|
u32_to_str 0x01002c7b Thumb Code 108 boot_cli.o(i.u32_to_str)
|
||||||
s_ApbPresTable 0x01002db0 Data 8 n32wb03x_rcc.o(.constdata)
|
.constdata 0x01002ce6 Section 472 system_n32wb03x.o(.constdata)
|
||||||
s_AhbPresTable 0x01002db8 Data 4 n32wb03x_rcc.o(.constdata)
|
.constdata 0x01002ec0 Section 108 boot_cli.o(.constdata)
|
||||||
.constdata 0x01002dbc Section 804 n32wb03x_qflash.o(.constdata)
|
s_cmds 0x01002ec0 Data 108 boot_cli.o(.constdata)
|
||||||
.constdata 0x010030e0 Section 129 ctype_o.o(.constdata)
|
.constdata 0x01002f2c Section 12 n32wb03x_rcc.o(.constdata)
|
||||||
.constdata 0x01003164 Section 4 ctype_o.o(.constdata)
|
s_ApbPresTable 0x01002f2c Data 8 n32wb03x_rcc.o(.constdata)
|
||||||
table 0x01003164 Data 4 ctype_o.o(.constdata)
|
s_AhbPresTable 0x01002f34 Data 4 n32wb03x_rcc.o(.constdata)
|
||||||
.conststring 0x01003168 Section 666 boot_cli.o(.conststring)
|
.constdata 0x01002f38 Section 804 n32wb03x_qflash.o(.constdata)
|
||||||
.conststring 0x01003404 Section 145 app_bootset.o(.conststring)
|
.constdata 0x0100325c Section 129 ctype_o.o(.constdata)
|
||||||
|
.constdata 0x010032e0 Section 4 ctype_o.o(.constdata)
|
||||||
|
table 0x010032e0 Data 4 ctype_o.o(.constdata)
|
||||||
|
.conststring 0x010032e4 Section 666 boot_cli.o(.conststring)
|
||||||
|
.conststring 0x01003580 Section 145 app_bootset.o(.conststring)
|
||||||
.data 0x20004000 Section 4 system_n32wb03x.o(.data)
|
.data 0x20004000 Section 4 system_n32wb03x.o(.data)
|
||||||
.data 0x20004004 Section 8 boot_usart.o(.data)
|
.data 0x20004004 Section 8 boot_usart.o(.data)
|
||||||
s_rxTail 0x20004004 Data 2 boot_usart.o(.data)
|
s_rxTail 0x20004004 Data 2 boot_usart.o(.data)
|
||||||
s_millis 0x20004008 Data 4 boot_usart.o(.data)
|
s_millis 0x20004008 Data 4 boot_usart.o(.data)
|
||||||
.data 0x2000400c Section 1 boot_cli.o(.data)
|
.data 0x2000400c Section 3 boot_cli.o(.data)
|
||||||
s_otaMode 0x2000400c Data 1 boot_cli.o(.data)
|
s_otaMode 0x2000400c Data 1 boot_cli.o(.data)
|
||||||
|
s_histCount 0x2000400d Data 1 boot_cli.o(.data)
|
||||||
|
s_histHead 0x2000400e Data 1 boot_cli.o(.data)
|
||||||
.data 0x20004010 Section 61 app_ota.o(.data)
|
.data 0x20004010 Section 61 app_ota.o(.data)
|
||||||
s_active 0x20004010 Data 1 app_ota.o(.data)
|
s_active 0x20004010 Data 1 app_ota.o(.data)
|
||||||
s_target_base 0x20004014 Data 4 app_ota.o(.data)
|
s_target_base 0x20004014 Data 4 app_ota.o(.data)
|
||||||
@ -646,14 +663,15 @@ Image Symbol Table
|
|||||||
.bss 0x20004060 Section 52 system_n32wb03x.o(.bss)
|
.bss 0x20004060 Section 52 system_n32wb03x.o(.bss)
|
||||||
.bss 0x20004094 Section 3072 boot_usart.o(.bss)
|
.bss 0x20004094 Section 3072 boot_usart.o(.bss)
|
||||||
s_rxRing 0x20004094 Data 3072 boot_usart.o(.bss)
|
s_rxRing 0x20004094 Data 3072 boot_usart.o(.bss)
|
||||||
.bss 0x20004c94 Section 176 boot_cli.o(.bss)
|
.bss 0x20004c94 Section 816 boot_cli.o(.bss)
|
||||||
s_txBuf 0x20004c94 Data 96 boot_cli.o(.bss)
|
s_history 0x20004c94 Data 640 boot_cli.o(.bss)
|
||||||
s_line 0x20004cf4 Data 80 boot_cli.o(.bss)
|
s_txBuf 0x20004f14 Data 96 boot_cli.o(.bss)
|
||||||
.bss 0x20004d44 Section 487 app_ota.o(.bss)
|
s_line 0x20004f74 Data 80 boot_cli.o(.bss)
|
||||||
s_chanBuf 0x20004d44 Data 487 app_ota.o(.bss)
|
.bss 0x20004fc4 Section 487 app_ota.o(.bss)
|
||||||
.bss 0x20004f2c Section 808 n32wb03x_qflash.o(.bss)
|
s_chanBuf 0x20004fc4 Data 487 app_ota.o(.bss)
|
||||||
ram_qflash_cmd 0x20004f2c Data 808 n32wb03x_qflash.o(.bss)
|
.bss 0x200051ac Section 808 n32wb03x_qflash.o(.bss)
|
||||||
STACK 0x20005258 Section 2048 startup_n32wb03x.o(STACK)
|
ram_qflash_cmd 0x200051ac Data 808 n32wb03x_qflash.o(.bss)
|
||||||
|
STACK 0x200054d8 Section 2048 startup_n32wb03x.o(STACK)
|
||||||
|
|
||||||
Global Symbols
|
Global Symbols
|
||||||
|
|
||||||
@ -747,61 +765,61 @@ Image Symbol Table
|
|||||||
AppBootset_CmdAppswitch 0x01000369 Thumb Code 282 app_bootset.o(i.AppBootset_CmdAppswitch)
|
AppBootset_CmdAppswitch 0x01000369 Thumb Code 282 app_bootset.o(i.AppBootset_CmdAppswitch)
|
||||||
AppBootset_CmdBsdump 0x01000641 Thumb Code 28 app_bootset.o(i.AppBootset_CmdBsdump)
|
AppBootset_CmdBsdump 0x01000641 Thumb Code 28 app_bootset.o(i.AppBootset_CmdBsdump)
|
||||||
AppBootset_CmdBsset 0x01000661 Thumb Code 348 app_bootset.o(i.AppBootset_CmdBsset)
|
AppBootset_CmdBsset 0x01000661 Thumb Code 348 app_bootset.o(i.AppBootset_CmdBsset)
|
||||||
DMA_DeInit 0x01000c85 Thumb Code 152 n32wb03x_dma.o(i.DMA_DeInit)
|
DMA_DeInit 0x01000c99 Thumb Code 152 n32wb03x_dma.o(i.DMA_DeInit)
|
||||||
DMA_EnableChannel 0x01000d25 Thumb Code 24 n32wb03x_dma.o(i.DMA_EnableChannel)
|
DMA_EnableChannel 0x01000d39 Thumb Code 24 n32wb03x_dma.o(i.DMA_EnableChannel)
|
||||||
DMA_GetCurrDataCounter 0x01000d41 Thumb Code 8 n32wb03x_dma.o(i.DMA_GetCurrDataCounter)
|
DMA_GetCurrDataCounter 0x01000d55 Thumb Code 8 n32wb03x_dma.o(i.DMA_GetCurrDataCounter)
|
||||||
DMA_Init 0x01000d49 Thumb Code 58 n32wb03x_dma.o(i.DMA_Init)
|
DMA_Init 0x01000d5d Thumb Code 58 n32wb03x_dma.o(i.DMA_Init)
|
||||||
DMA_RequestRemap 0x01000d89 Thumb Code 16 n32wb03x_dma.o(i.DMA_RequestRemap)
|
DMA_RequestRemap 0x01000d9d Thumb Code 16 n32wb03x_dma.o(i.DMA_RequestRemap)
|
||||||
GPIO_InitPeripheral 0x01000d99 Thumb Code 262 n32wb03x_gpio.o(i.GPIO_InitPeripheral)
|
GPIO_InitPeripheral 0x01000dad Thumb Code 262 n32wb03x_gpio.o(i.GPIO_InitPeripheral)
|
||||||
GPIO_InitStruct 0x01000ea1 Thumb Code 24 n32wb03x_gpio.o(i.GPIO_InitStruct)
|
GPIO_InitStruct 0x01000eb5 Thumb Code 24 n32wb03x_gpio.o(i.GPIO_InitStruct)
|
||||||
GPIO_ReadInputDataBit 0x01000ebd Thumb Code 20 n32wb03x_gpio.o(i.GPIO_ReadInputDataBit)
|
GPIO_ReadInputDataBit 0x01000ed1 Thumb Code 20 n32wb03x_gpio.o(i.GPIO_ReadInputDataBit)
|
||||||
OTPTrim_Read 0x01000ed1 Thumb Code 192 system_n32wb03x.o(i.OTPTrim_Read)
|
OTPTrim_Read 0x01000ee5 Thumb Code 192 system_n32wb03x.o(i.OTPTrim_Read)
|
||||||
Qflash_Erase_Sector 0x01000f9d Thumb Code 54 n32wb03x_qflash.o(i.Qflash_Erase_Sector)
|
Qflash_Erase_Sector 0x01000fb1 Thumb Code 54 n32wb03x_qflash.o(i.Qflash_Erase_Sector)
|
||||||
Qflash_Init 0x01000fd9 Thumb Code 36 n32wb03x_qflash.o(i.Qflash_Init)
|
Qflash_Init 0x01000fed Thumb Code 36 n32wb03x_qflash.o(i.Qflash_Init)
|
||||||
Qflash_Write 0x01001011 Thumb Code 62 n32wb03x_qflash.o(i.Qflash_Write)
|
Qflash_Write 0x01001025 Thumb Code 62 n32wb03x_qflash.o(i.Qflash_Write)
|
||||||
RCC_EnableAHBPeriphClk 0x01001055 Thumb Code 28 n32wb03x_rcc.o(i.RCC_EnableAHBPeriphClk)
|
RCC_EnableAHBPeriphClk 0x01001069 Thumb Code 28 n32wb03x_rcc.o(i.RCC_EnableAHBPeriphClk)
|
||||||
RCC_EnableAPB2PeriphClk 0x01001075 Thumb Code 28 n32wb03x_rcc.o(i.RCC_EnableAPB2PeriphClk)
|
RCC_EnableAPB2PeriphClk 0x01001089 Thumb Code 28 n32wb03x_rcc.o(i.RCC_EnableAPB2PeriphClk)
|
||||||
RCC_GetClocksFreqValue 0x01001095 Thumb Code 140 n32wb03x_rcc.o(i.RCC_GetClocksFreqValue)
|
RCC_GetClocksFreqValue 0x010010a9 Thumb Code 140 n32wb03x_rcc.o(i.RCC_GetClocksFreqValue)
|
||||||
SystemInit 0x01001269 Thumb Code 250 system_n32wb03x.o(i.SystemInit)
|
SystemInit 0x0100127d Thumb Code 250 system_n32wb03x.o(i.SystemInit)
|
||||||
SystemTrimValueRead 0x01001385 Thumb Code 20 system_n32wb03x.o(i.SystemTrimValueRead)
|
SystemTrimValueRead 0x01001399 Thumb Code 20 system_n32wb03x.o(i.SystemTrimValueRead)
|
||||||
USART_Enable 0x01001399 Thumb Code 26 n32wb03x_usart.o(i.USART_Enable)
|
USART_Enable 0x010013ad Thumb Code 26 n32wb03x_usart.o(i.USART_Enable)
|
||||||
USART_EnableDMA 0x010013b9 Thumb Code 20 n32wb03x_usart.o(i.USART_EnableDMA)
|
USART_EnableDMA 0x010013cd Thumb Code 20 n32wb03x_usart.o(i.USART_EnableDMA)
|
||||||
USART_GetFlagStatus 0x010013cd Thumb Code 30 n32wb03x_usart.o(i.USART_GetFlagStatus)
|
USART_GetFlagStatus 0x010013e1 Thumb Code 30 n32wb03x_usart.o(i.USART_GetFlagStatus)
|
||||||
USART_Init 0x010013ed Thumb Code 162 n32wb03x_usart.o(i.USART_Init)
|
USART_Init 0x01001401 Thumb Code 162 n32wb03x_usart.o(i.USART_Init)
|
||||||
USART_SendData 0x010014a1 Thumb Code 8 n32wb03x_usart.o(i.USART_SendData)
|
USART_SendData 0x010014b5 Thumb Code 8 n32wb03x_usart.o(i.USART_SendData)
|
||||||
__aeabi_errno_addr 0x010014a9 Thumb Code 4 errno.o(i.__aeabi_errno_addr)
|
__aeabi_errno_addr 0x010014bd Thumb Code 4 errno.o(i.__aeabi_errno_addr)
|
||||||
__rt_errno_addr 0x010014a9 Thumb Code 0 errno.o(i.__aeabi_errno_addr)
|
__rt_errno_addr 0x010014bd Thumb Code 0 errno.o(i.__aeabi_errno_addr)
|
||||||
__scatterload_copy 0x010014b1 Thumb Code 14 handlers.o(i.__scatterload_copy)
|
__scatterload_copy 0x010014c5 Thumb Code 14 handlers.o(i.__scatterload_copy)
|
||||||
__scatterload_null 0x010014bf Thumb Code 2 handlers.o(i.__scatterload_null)
|
__scatterload_null 0x010014d3 Thumb Code 2 handlers.o(i.__scatterload_null)
|
||||||
__scatterload_zeroinit 0x010014c1 Thumb Code 14 handlers.o(i.__scatterload_zeroinit)
|
__scatterload_zeroinit 0x010014d5 Thumb Code 14 handlers.o(i.__scatterload_zeroinit)
|
||||||
app_ota_abort 0x010014dd Thumb Code 32 app_ota.o(i.app_ota_abort)
|
app_ota_abort 0x010014f1 Thumb Code 32 app_ota.o(i.app_ota_abort)
|
||||||
app_ota_chan_idle 0x01001519 Thumb Code 12 app_ota.o(i.app_ota_chan_idle)
|
app_ota_chan_idle 0x0100152d Thumb Code 12 app_ota.o(i.app_ota_chan_idle)
|
||||||
app_ota_chan_rx 0x0100152d Thumb Code 298 app_ota.o(i.app_ota_chan_rx)
|
app_ota_chan_rx 0x01001541 Thumb Code 298 app_ota.o(i.app_ota_chan_rx)
|
||||||
app_ota_chan_rx_uart 0x0100166d Thumb Code 26 app_ota.o(i.app_ota_chan_rx_uart)
|
app_ota_chan_rx_uart 0x01001681 Thumb Code 26 app_ota.o(i.app_ota_chan_rx_uart)
|
||||||
app_ota_handle_frame 0x01001691 Thumb Code 106 app_ota.o(i.app_ota_handle_frame)
|
app_ota_handle_frame 0x010016a5 Thumb Code 106 app_ota.o(i.app_ota_handle_frame)
|
||||||
app_ota_reset_poll 0x0100170d Thumb Code 70 app_ota.o(i.app_ota_reset_poll)
|
app_ota_reset_poll 0x01001721 Thumb Code 70 app_ota.o(i.app_ota_reset_poll)
|
||||||
boot_cli_run 0x010017b5 Thumb Code 240 boot_cli.o(i.boot_cli_run)
|
boot_cli_run 0x010017c9 Thumb Code 432 boot_cli.o(i.boot_cli_run)
|
||||||
boot_delay_ms 0x01001a55 Thumb Code 24 boot_usart.o(i.boot_delay_ms)
|
boot_delay_ms 0x01001b2d Thumb Code 24 boot_usart.o(i.boot_delay_ms)
|
||||||
boot_millis 0x01001aad Thumb Code 30 boot_usart.o(i.boot_millis)
|
boot_millis 0x01001b85 Thumb Code 30 boot_usart.o(i.boot_millis)
|
||||||
boot_usart_init 0x01001ad5 Thumb Code 238 boot_usart.o(i.boot_usart_init)
|
boot_usart_init 0x01001bad Thumb Code 238 boot_usart.o(i.boot_usart_init)
|
||||||
boot_usart_read 0x01001be5 Thumb Code 54 boot_usart.o(i.boot_usart_read)
|
boot_usart_read 0x01001cbd Thumb Code 54 boot_usart.o(i.boot_usart_read)
|
||||||
boot_usart_write 0x01001c3d Thumb Code 42 boot_usart.o(i.boot_usart_write)
|
boot_usart_write 0x01001d15 Thumb Code 42 boot_usart.o(i.boot_usart_write)
|
||||||
caiic_crc32 0x01001e7d Thumb Code 62 boot_crc32.o(i.caiic_crc32)
|
caiic_crc32 0x01001f55 Thumb Code 62 boot_crc32.o(i.caiic_crc32)
|
||||||
cli_printf 0x01001f8d Thumb Code 408 boot_cli.o(i.cli_printf)
|
cli_printf 0x01002109 Thumb Code 408 boot_cli.o(i.cli_printf)
|
||||||
cli_write 0x01002129 Thumb Code 22 boot_cli.o(i.cli_write)
|
cli_write 0x010022a5 Thumb Code 22 boot_cli.o(i.cli_write)
|
||||||
main 0x01002199 Thumb Code 210 main.o(i.main)
|
main 0x01002315 Thumb Code 210 main.o(i.main)
|
||||||
TRIM_READ_CMD_CODE 0x01002b6a Data 320 system_n32wb03x.o(.constdata)
|
TRIM_READ_CMD_CODE 0x01002ce6 Data 320 system_n32wb03x.o(.constdata)
|
||||||
CMD_RDID 0x01002caa Data 152 system_n32wb03x.o(.constdata)
|
CMD_RDID 0x01002e26 Data 152 system_n32wb03x.o(.constdata)
|
||||||
const_qflash_cmd 0x01002dbc Data 804 n32wb03x_qflash.o(.constdata)
|
const_qflash_cmd 0x01002f38 Data 804 n32wb03x_qflash.o(.constdata)
|
||||||
__ctype_table 0x010030e0 Data 129 ctype_o.o(.constdata)
|
__ctype_table 0x0100325c Data 129 ctype_o.o(.constdata)
|
||||||
Region$$Table$$Base 0x01003498 Number 0 anon$$obj.o(Region$$Table)
|
Region$$Table$$Base 0x01003614 Number 0 anon$$obj.o(Region$$Table)
|
||||||
Region$$Table$$Limit 0x010034b8 Number 0 anon$$obj.o(Region$$Table)
|
Region$$Table$$Limit 0x01003634 Number 0 anon$$obj.o(Region$$Table)
|
||||||
SystemCoreClock 0x20004000 Data 4 system_n32wb03x.o(.data)
|
SystemCoreClock 0x20004000 Data 4 system_n32wb03x.o(.data)
|
||||||
CMD_FLASH_SE 0x20004050 Data 4 n32wb03x_qflash.o(.data)
|
CMD_FLASH_SE 0x20004050 Data 4 n32wb03x_qflash.o(.data)
|
||||||
CMD_FLASH_WRITE 0x20004054 Data 4 n32wb03x_qflash.o(.data)
|
CMD_FLASH_WRITE 0x20004054 Data 4 n32wb03x_qflash.o(.data)
|
||||||
CMD_FLASH_READ 0x20004058 Data 4 n32wb03x_qflash.o(.data)
|
CMD_FLASH_READ 0x20004058 Data 4 n32wb03x_qflash.o(.data)
|
||||||
trim_stored 0x20004060 Data 52 system_n32wb03x.o(.bss)
|
trim_stored 0x20004060 Data 52 system_n32wb03x.o(.bss)
|
||||||
__initial_sp 0x20005a58 Data 0 startup_n32wb03x.o(STACK)
|
__initial_sp 0x20005cd8 Data 0 startup_n32wb03x.o(STACK)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -811,165 +829,167 @@ Memory Map of the image
|
|||||||
|
|
||||||
Image Entry point : 0x010000c1
|
Image Entry point : 0x010000c1
|
||||||
|
|
||||||
Load Region LR_IROM1 (Base: 0x01000000, Size: 0x00003518, Max: 0x00004000, ABSOLUTE)
|
Load Region LR_IROM1 (Base: 0x01000000, Size: 0x00003694, Max: 0x00004000, ABSOLUTE)
|
||||||
|
|
||||||
Execution Region ER_IROM1 (Exec base: 0x01000000, Load base: 0x01000000, Size: 0x000034b8, Max: 0x00004000, ABSOLUTE)
|
Execution Region ER_IROM1 (Exec base: 0x01000000, Load base: 0x01000000, Size: 0x00003634, Max: 0x00004000, ABSOLUTE)
|
||||||
|
|
||||||
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
|
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
|
||||||
|
|
||||||
0x01000000 0x01000000 0x000000c0 Data RO 3 RESET startup_n32wb03x.o
|
0x01000000 0x01000000 0x000000c0 Data RO 3 RESET startup_n32wb03x.o
|
||||||
0x010000c0 0x010000c0 0x00000000 Code RO 1225 * .ARM.Collect$$$$00000000 mc_p.l(entry.o)
|
0x010000c0 0x010000c0 0x00000000 Code RO 1235 * .ARM.Collect$$$$00000000 mc_p.l(entry.o)
|
||||||
0x010000c0 0x010000c0 0x00000004 Code RO 1250 .ARM.Collect$$$$00000001 mc_p.l(entry2.o)
|
0x010000c0 0x010000c0 0x00000004 Code RO 1260 .ARM.Collect$$$$00000001 mc_p.l(entry2.o)
|
||||||
0x010000c4 0x010000c4 0x00000004 Code RO 1253 .ARM.Collect$$$$00000004 mc_p.l(entry5.o)
|
0x010000c4 0x010000c4 0x00000004 Code RO 1263 .ARM.Collect$$$$00000004 mc_p.l(entry5.o)
|
||||||
0x010000c8 0x010000c8 0x00000000 Code RO 1255 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o)
|
0x010000c8 0x010000c8 0x00000000 Code RO 1265 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o)
|
||||||
0x010000c8 0x010000c8 0x00000000 Code RO 1257 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o)
|
0x010000c8 0x010000c8 0x00000000 Code RO 1267 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o)
|
||||||
0x010000c8 0x010000c8 0x00000008 Code RO 1258 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o)
|
0x010000c8 0x010000c8 0x00000008 Code RO 1268 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o)
|
||||||
0x010000d0 0x010000d0 0x00000000 Code RO 1260 .ARM.Collect$$$$0000000D mc_p.l(entry10a.o)
|
0x010000d0 0x010000d0 0x00000000 Code RO 1270 .ARM.Collect$$$$0000000D mc_p.l(entry10a.o)
|
||||||
0x010000d0 0x010000d0 0x00000000 Code RO 1262 .ARM.Collect$$$$0000000F mc_p.l(entry11a.o)
|
0x010000d0 0x010000d0 0x00000000 Code RO 1272 .ARM.Collect$$$$0000000F mc_p.l(entry11a.o)
|
||||||
0x010000d0 0x010000d0 0x00000004 Code RO 1251 .ARM.Collect$$$$00002712 mc_p.l(entry2.o)
|
0x010000d0 0x010000d0 0x00000004 Code RO 1261 .ARM.Collect$$$$00002712 mc_p.l(entry2.o)
|
||||||
0x010000d4 0x010000d4 0x0000000e Code RO 10 .emb_text system_n32wb03x.o
|
0x010000d4 0x010000d4 0x0000000e Code RO 10 .emb_text system_n32wb03x.o
|
||||||
0x010000e2 0x010000e2 0x00000002 PAD
|
0x010000e2 0x010000e2 0x00000002 PAD
|
||||||
0x010000e4 0x010000e4 0x0000001c Code RO 4 .text startup_n32wb03x.o
|
0x010000e4 0x010000e4 0x0000001c Code RO 4 .text startup_n32wb03x.o
|
||||||
0x01000100 0x01000100 0x0000002c Code RO 1228 .text mc_p.l(uidiv.o)
|
0x01000100 0x01000100 0x0000002c Code RO 1238 .text mc_p.l(uidiv.o)
|
||||||
0x0100012c 0x0100012c 0x00000024 Code RO 1230 .text mc_p.l(memcpya.o)
|
0x0100012c 0x0100012c 0x00000024 Code RO 1240 .text mc_p.l(memcpya.o)
|
||||||
0x01000150 0x01000150 0x00000024 Code RO 1232 .text mc_p.l(memseta.o)
|
0x01000150 0x01000150 0x00000024 Code RO 1242 .text mc_p.l(memseta.o)
|
||||||
0x01000174 0x01000174 0x0000000e Code RO 1234 .text mc_p.l(strlen.o)
|
0x01000174 0x01000174 0x0000000e Code RO 1244 .text mc_p.l(strlen.o)
|
||||||
0x01000182 0x01000182 0x0000001c Code RO 1236 .text mc_p.l(strcmp.o)
|
0x01000182 0x01000182 0x0000001c Code RO 1246 .text mc_p.l(strcmp.o)
|
||||||
0x0100019e 0x0100019e 0x00000014 Code RO 1238 .text mc_p.l(memchr.o)
|
0x0100019e 0x0100019e 0x00000014 Code RO 1248 .text mc_p.l(memchr.o)
|
||||||
0x010001b2 0x010001b2 0x0000001a Code RO 1240 .text mc_p.l(memcmp.o)
|
0x010001b2 0x010001b2 0x0000001a Code RO 1250 .text mc_p.l(memcmp.o)
|
||||||
0x010001cc 0x010001cc 0x00000012 Code RO 1242 .text mc_p.l(strcpy.o)
|
0x010001cc 0x010001cc 0x00000012 Code RO 1252 .text mc_p.l(strcpy.o)
|
||||||
0x010001de 0x010001de 0x0000001e Code RO 1244 .text mc_p.l(strncmp.o)
|
0x010001de 0x010001de 0x0000001e Code RO 1254 .text mc_p.l(strncmp.o)
|
||||||
0x010001fc 0x010001fc 0x00000076 Code RO 1248 .text mc_p.l(strtoul.o)
|
0x010001fc 0x010001fc 0x00000076 Code RO 1258 .text mc_p.l(strtoul.o)
|
||||||
0x01000272 0x01000272 0x00000002 PAD
|
0x01000272 0x01000272 0x00000002 PAD
|
||||||
0x01000274 0x01000274 0x00000008 Code RO 1264 .text mc_p.l(ctype_o.o)
|
0x01000274 0x01000274 0x00000008 Code RO 1274 .text mc_p.l(ctype_o.o)
|
||||||
0x0100027c 0x0100027c 0x000000a6 Code RO 1299 .text mc_p.l(_strtoul.o)
|
0x0100027c 0x0100027c 0x000000a6 Code RO 1309 .text mc_p.l(_strtoul.o)
|
||||||
0x01000322 0x01000322 0x00000002 PAD
|
0x01000322 0x01000322 0x00000002 PAD
|
||||||
0x01000324 0x01000324 0x00000024 Code RO 1301 .text mc_p.l(init.o)
|
0x01000324 0x01000324 0x00000024 Code RO 1311 .text mc_p.l(init.o)
|
||||||
0x01000348 0x01000348 0x0000001e Code RO 1303 .text mc_p.l(_chval.o)
|
0x01000348 0x01000348 0x0000001e Code RO 1313 .text mc_p.l(_chval.o)
|
||||||
0x01000366 0x01000366 0x00000002 PAD
|
0x01000366 0x01000366 0x00000002 PAD
|
||||||
0x01000368 0x01000368 0x000002d8 Code RO 510 i.AppBootset_CmdAppswitch app_bootset.o
|
0x01000368 0x01000368 0x000002d8 Code RO 520 i.AppBootset_CmdAppswitch app_bootset.o
|
||||||
0x01000640 0x01000640 0x00000020 Code RO 511 i.AppBootset_CmdBsdump app_bootset.o
|
0x01000640 0x01000640 0x00000020 Code RO 521 i.AppBootset_CmdBsdump app_bootset.o
|
||||||
0x01000660 0x01000660 0x000002f8 Code RO 512 i.AppBootset_CmdBsset app_bootset.o
|
0x01000660 0x01000660 0x000002f8 Code RO 522 i.AppBootset_CmdBsset app_bootset.o
|
||||||
0x01000958 0x01000958 0x000000e0 Code RO 295 i.CmdDevInfo boot_cli.o
|
0x01000958 0x01000958 0x000000e0 Code RO 295 i.CmdDevInfo boot_cli.o
|
||||||
0x01000a38 0x01000a38 0x000000d0 Code RO 296 i.CmdHelp boot_cli.o
|
0x01000a38 0x01000a38 0x000000e4 Code RO 296 i.CmdHelp boot_cli.o
|
||||||
0x01000b08 0x01000b08 0x0000001c Code RO 297 i.CmdOta boot_cli.o
|
0x01000b1c 0x01000b1c 0x0000001c Code RO 297 i.CmdOta boot_cli.o
|
||||||
0x01000b24 0x01000b24 0x0000003c Code RO 298 i.CmdReset boot_cli.o
|
0x01000b38 0x01000b38 0x0000003c Code RO 298 i.CmdReset boot_cli.o
|
||||||
0x01000b60 0x01000b60 0x000000b0 Code RO 299 i.CmdUartInfo boot_cli.o
|
0x01000b74 0x01000b74 0x000000b0 Code RO 299 i.CmdUartInfo boot_cli.o
|
||||||
0x01000c10 0x01000c10 0x00000074 Code RO 300 i.CmdVersion boot_cli.o
|
0x01000c24 0x01000c24 0x00000074 Code RO 300 i.CmdVersion boot_cli.o
|
||||||
0x01000c84 0x01000c84 0x000000a0 Code RO 1103 i.DMA_DeInit n32wb03x_dma.o
|
0x01000c98 0x01000c98 0x000000a0 Code RO 1113 i.DMA_DeInit n32wb03x_dma.o
|
||||||
0x01000d24 0x01000d24 0x0000001c Code RO 1104 i.DMA_EnableChannel n32wb03x_dma.o
|
0x01000d38 0x01000d38 0x0000001c Code RO 1114 i.DMA_EnableChannel n32wb03x_dma.o
|
||||||
0x01000d40 0x01000d40 0x00000008 Code RO 1105 i.DMA_GetCurrDataCounter n32wb03x_dma.o
|
0x01000d54 0x01000d54 0x00000008 Code RO 1115 i.DMA_GetCurrDataCounter n32wb03x_dma.o
|
||||||
0x01000d48 0x01000d48 0x00000040 Code RO 1108 i.DMA_Init n32wb03x_dma.o
|
0x01000d5c 0x01000d5c 0x00000040 Code RO 1118 i.DMA_Init n32wb03x_dma.o
|
||||||
0x01000d88 0x01000d88 0x00000010 Code RO 1109 i.DMA_RequestRemap n32wb03x_dma.o
|
0x01000d9c 0x01000d9c 0x00000010 Code RO 1119 i.DMA_RequestRemap n32wb03x_dma.o
|
||||||
0x01000d98 0x01000d98 0x00000106 Code RO 815 i.GPIO_InitPeripheral n32wb03x_gpio.o
|
0x01000dac 0x01000dac 0x00000106 Code RO 825 i.GPIO_InitPeripheral n32wb03x_gpio.o
|
||||||
0x01000e9e 0x01000e9e 0x00000002 PAD
|
0x01000eb2 0x01000eb2 0x00000002 PAD
|
||||||
0x01000ea0 0x01000ea0 0x0000001c Code RO 816 i.GPIO_InitStruct n32wb03x_gpio.o
|
0x01000eb4 0x01000eb4 0x0000001c Code RO 826 i.GPIO_InitStruct n32wb03x_gpio.o
|
||||||
0x01000ebc 0x01000ebc 0x00000014 Code RO 818 i.GPIO_ReadInputDataBit n32wb03x_gpio.o
|
0x01000ed0 0x01000ed0 0x00000014 Code RO 828 i.GPIO_ReadInputDataBit n32wb03x_gpio.o
|
||||||
0x01000ed0 0x01000ed0 0x000000cc Code RO 11 i.OTPTrim_Read system_n32wb03x.o
|
0x01000ee4 0x01000ee4 0x000000cc Code RO 11 i.OTPTrim_Read system_n32wb03x.o
|
||||||
0x01000f9c 0x01000f9c 0x0000003c Code RO 1182 i.Qflash_Erase_Sector n32wb03x_qflash.o
|
0x01000fb0 0x01000fb0 0x0000003c Code RO 1192 i.Qflash_Erase_Sector n32wb03x_qflash.o
|
||||||
0x01000fd8 0x01000fd8 0x00000038 Code RO 1183 i.Qflash_Init n32wb03x_qflash.o
|
0x01000fec 0x01000fec 0x00000038 Code RO 1193 i.Qflash_Init n32wb03x_qflash.o
|
||||||
0x01001010 0x01001010 0x00000044 Code RO 1185 i.Qflash_Write n32wb03x_qflash.o
|
0x01001024 0x01001024 0x00000044 Code RO 1195 i.Qflash_Write n32wb03x_qflash.o
|
||||||
0x01001054 0x01001054 0x00000020 Code RO 591 i.RCC_EnableAHBPeriphClk n32wb03x_rcc.o
|
0x01001068 0x01001068 0x00000020 Code RO 601 i.RCC_EnableAHBPeriphClk n32wb03x_rcc.o
|
||||||
0x01001074 0x01001074 0x00000020 Code RO 595 i.RCC_EnableAPB2PeriphClk n32wb03x_rcc.o
|
0x01001088 0x01001088 0x00000020 Code RO 605 i.RCC_EnableAPB2PeriphClk n32wb03x_rcc.o
|
||||||
0x01001094 0x01001094 0x000000a4 Code RO 603 i.RCC_GetClocksFreqValue n32wb03x_rcc.o
|
0x010010a8 0x010010a8 0x000000a4 Code RO 613 i.RCC_GetClocksFreqValue n32wb03x_rcc.o
|
||||||
0x01001138 0x01001138 0x00000130 Code RO 12 i.RCC_HsiCalib system_n32wb03x.o
|
0x0100114c 0x0100114c 0x00000130 Code RO 12 i.RCC_HsiCalib system_n32wb03x.o
|
||||||
0x01001268 0x01001268 0x0000011c Code RO 16 i.SystemInit system_n32wb03x.o
|
0x0100127c 0x0100127c 0x0000011c Code RO 16 i.SystemInit system_n32wb03x.o
|
||||||
0x01001384 0x01001384 0x00000014 Code RO 18 i.SystemTrimValueRead system_n32wb03x.o
|
0x01001398 0x01001398 0x00000014 Code RO 18 i.SystemTrimValueRead system_n32wb03x.o
|
||||||
0x01001398 0x01001398 0x00000020 Code RO 937 i.USART_Enable n32wb03x_usart.o
|
0x010013ac 0x010013ac 0x00000020 Code RO 947 i.USART_Enable n32wb03x_usart.o
|
||||||
0x010013b8 0x010013b8 0x00000014 Code RO 938 i.USART_EnableDMA n32wb03x_usart.o
|
0x010013cc 0x010013cc 0x00000014 Code RO 948 i.USART_EnableDMA n32wb03x_usart.o
|
||||||
0x010013cc 0x010013cc 0x0000001e Code RO 944 i.USART_GetFlagStatus n32wb03x_usart.o
|
0x010013e0 0x010013e0 0x0000001e Code RO 954 i.USART_GetFlagStatus n32wb03x_usart.o
|
||||||
0x010013ea 0x010013ea 0x00000002 PAD
|
0x010013fe 0x010013fe 0x00000002 PAD
|
||||||
0x010013ec 0x010013ec 0x000000b4 Code RO 946 i.USART_Init n32wb03x_usart.o
|
0x01001400 0x01001400 0x000000b4 Code RO 956 i.USART_Init n32wb03x_usart.o
|
||||||
0x010014a0 0x010014a0 0x00000008 Code RO 949 i.USART_SendData n32wb03x_usart.o
|
0x010014b4 0x010014b4 0x00000008 Code RO 959 i.USART_SendData n32wb03x_usart.o
|
||||||
0x010014a8 0x010014a8 0x00000008 Code RO 1292 i.__aeabi_errno_addr mc_p.l(errno.o)
|
0x010014bc 0x010014bc 0x00000008 Code RO 1302 i.__aeabi_errno_addr mc_p.l(errno.o)
|
||||||
0x010014b0 0x010014b0 0x0000000e Code RO 1307 i.__scatterload_copy mc_p.l(handlers.o)
|
0x010014c4 0x010014c4 0x0000000e Code RO 1317 i.__scatterload_copy mc_p.l(handlers.o)
|
||||||
0x010014be 0x010014be 0x00000002 Code RO 1308 i.__scatterload_null mc_p.l(handlers.o)
|
0x010014d2 0x010014d2 0x00000002 Code RO 1318 i.__scatterload_null mc_p.l(handlers.o)
|
||||||
0x010014c0 0x010014c0 0x0000000e Code RO 1309 i.__scatterload_zeroinit mc_p.l(handlers.o)
|
0x010014d4 0x010014d4 0x0000000e Code RO 1319 i.__scatterload_zeroinit mc_p.l(handlers.o)
|
||||||
0x010014ce 0x010014ce 0x00000006 Code RO 19 i.__set_PRIMASK system_n32wb03x.o
|
0x010014e2 0x010014e2 0x00000006 Code RO 19 i.__set_PRIMASK system_n32wb03x.o
|
||||||
0x010014d4 0x010014d4 0x00000006 Code RO 1186 i.__set_PRIMASK n32wb03x_qflash.o
|
0x010014e8 0x010014e8 0x00000006 Code RO 1196 i.__set_PRIMASK n32wb03x_qflash.o
|
||||||
0x010014da 0x010014da 0x00000002 PAD
|
0x010014ee 0x010014ee 0x00000002 PAD
|
||||||
0x010014dc 0x010014dc 0x0000003c Code RO 401 i.app_ota_abort app_ota.o
|
0x010014f0 0x010014f0 0x0000003c Code RO 411 i.app_ota_abort app_ota.o
|
||||||
0x01001518 0x01001518 0x00000014 Code RO 402 i.app_ota_chan_idle app_ota.o
|
0x0100152c 0x0100152c 0x00000014 Code RO 412 i.app_ota_chan_idle app_ota.o
|
||||||
0x0100152c 0x0100152c 0x00000140 Code RO 403 i.app_ota_chan_rx app_ota.o
|
0x01001540 0x01001540 0x00000140 Code RO 413 i.app_ota_chan_rx app_ota.o
|
||||||
0x0100166c 0x0100166c 0x00000024 Code RO 404 i.app_ota_chan_rx_uart app_ota.o
|
0x01001680 0x01001680 0x00000024 Code RO 414 i.app_ota_chan_rx_uart app_ota.o
|
||||||
0x01001690 0x01001690 0x0000007c Code RO 406 i.app_ota_handle_frame app_ota.o
|
0x010016a4 0x010016a4 0x0000007c Code RO 416 i.app_ota_handle_frame app_ota.o
|
||||||
0x0100170c 0x0100170c 0x0000005c Code RO 407 i.app_ota_reset_poll app_ota.o
|
0x01001720 0x01001720 0x0000005c Code RO 417 i.app_ota_reset_poll app_ota.o
|
||||||
0x01001768 0x01001768 0x0000004c Code RO 301 i.boot_cli_redraw boot_cli.o
|
0x0100177c 0x0100177c 0x0000004c Code RO 301 i.boot_cli_redraw boot_cli.o
|
||||||
0x010017b4 0x010017b4 0x0000015c Code RO 302 i.boot_cli_run boot_cli.o
|
0x010017c8 0x010017c8 0x00000220 Code RO 302 i.boot_cli_run boot_cli.o
|
||||||
0x01001910 0x01001910 0x00000144 Code RO 303 i.boot_cli_tab_complete boot_cli.o
|
0x010019e8 0x010019e8 0x00000144 Code RO 303 i.boot_cli_tab_complete boot_cli.o
|
||||||
0x01001a54 0x01001a54 0x00000018 Code RO 244 i.boot_delay_ms boot_usart.o
|
0x01001b2c 0x01001b2c 0x00000018 Code RO 244 i.boot_delay_ms boot_usart.o
|
||||||
0x01001a6c 0x01001a6c 0x00000040 Code RO 174 i.boot_dl_strap_active main.o
|
0x01001b44 0x01001b44 0x00000040 Code RO 174 i.boot_dl_strap_active main.o
|
||||||
0x01001aac 0x01001aac 0x00000028 Code RO 245 i.boot_millis boot_usart.o
|
0x01001b84 0x01001b84 0x00000028 Code RO 245 i.boot_millis boot_usart.o
|
||||||
0x01001ad4 0x01001ad4 0x00000110 Code RO 246 i.boot_usart_init boot_usart.o
|
0x01001bac 0x01001bac 0x00000110 Code RO 246 i.boot_usart_init boot_usart.o
|
||||||
0x01001be4 0x01001be4 0x00000040 Code RO 247 i.boot_usart_read boot_usart.o
|
0x01001cbc 0x01001cbc 0x00000040 Code RO 247 i.boot_usart_read boot_usart.o
|
||||||
0x01001c24 0x01001c24 0x00000018 Code RO 248 i.boot_usart_rx_head boot_usart.o
|
0x01001cfc 0x01001cfc 0x00000018 Code RO 248 i.boot_usart_rx_head boot_usart.o
|
||||||
0x01001c3c 0x01001c3c 0x00000030 Code RO 249 i.boot_usart_write boot_usart.o
|
0x01001d14 0x01001d14 0x00000030 Code RO 249 i.boot_usart_write boot_usart.o
|
||||||
0x01001c6c 0x01001c6c 0x00000054 Code RO 513 i.bootset_commit app_bootset.o
|
0x01001d44 0x01001d44 0x00000054 Code RO 523 i.bootset_commit app_bootset.o
|
||||||
0x01001cc0 0x01001cc0 0x0000000e Code RO 514 i.bootset_crc app_bootset.o
|
0x01001d98 0x01001d98 0x0000000e Code RO 524 i.bootset_crc app_bootset.o
|
||||||
0x01001cce 0x01001cce 0x00000002 PAD
|
0x01001da6 0x01001da6 0x00000002 PAD
|
||||||
0x01001cd0 0x01001cd0 0x0000001c Code RO 515 i.bootset_ensure_qflash app_bootset.o
|
0x01001da8 0x01001da8 0x0000001c Code RO 525 i.bootset_ensure_qflash app_bootset.o
|
||||||
0x01001cec 0x01001cec 0x0000016c Code RO 516 i.bootset_print app_bootset.o
|
0x01001dc4 0x01001dc4 0x0000016c Code RO 526 i.bootset_print app_bootset.o
|
||||||
0x01001e58 0x01001e58 0x00000024 Code RO 517 i.bootset_valid app_bootset.o
|
0x01001f30 0x01001f30 0x00000024 Code RO 527 i.bootset_valid app_bootset.o
|
||||||
0x01001e7c 0x01001e7c 0x00000044 Code RO 231 i.caiic_crc32 boot_crc32.o
|
0x01001f54 0x01001f54 0x00000044 Code RO 231 i.caiic_crc32 boot_crc32.o
|
||||||
0x01001ec0 0x01001ec0 0x000000cc Code RO 304 i.cli_exec_line boot_cli.o
|
0x01001f98 0x01001f98 0x000000cc Code RO 304 i.cli_exec_line boot_cli.o
|
||||||
0x01001f8c 0x01001f8c 0x0000019c Code RO 305 i.cli_printf boot_cli.o
|
0x01002064 0x01002064 0x00000078 Code RO 305 i.cli_history_add boot_cli.o
|
||||||
0x01002128 0x01002128 0x00000016 Code RO 306 i.cli_write boot_cli.o
|
0x010020dc 0x010020dc 0x0000002c Code RO 306 i.cli_history_get boot_cli.o
|
||||||
0x0100213e 0x0100213e 0x00000002 PAD
|
0x01002108 0x01002108 0x0000019c Code RO 307 i.cli_printf boot_cli.o
|
||||||
0x01002140 0x01002140 0x00000034 Code RO 175 i.image_sane main.o
|
0x010022a4 0x010022a4 0x00000016 Code RO 308 i.cli_write boot_cli.o
|
||||||
0x01002174 0x01002174 0x00000024 Code RO 176 i.jump_to_app main.o
|
0x010022ba 0x010022ba 0x00000002 PAD
|
||||||
0x01002198 0x01002198 0x000001c4 Code RO 177 i.main main.o
|
0x010022bc 0x010022bc 0x00000034 Code RO 175 i.image_sane main.o
|
||||||
0x0100235c 0x0100235c 0x0000004c Code RO 408 i.ota_crc16 app_ota.o
|
0x010022f0 0x010022f0 0x00000024 Code RO 176 i.jump_to_app main.o
|
||||||
0x010023a8 0x010023a8 0x00000040 Code RO 409 i.ota_erase_up_to app_ota.o
|
0x01002314 0x01002314 0x000001c4 Code RO 177 i.main main.o
|
||||||
0x010023e8 0x010023e8 0x00000170 Code RO 410 i.ota_on_begin app_ota.o
|
0x010024d8 0x010024d8 0x0000004c Code RO 418 i.ota_crc16 app_ota.o
|
||||||
0x01002558 0x01002558 0x000001a8 Code RO 411 i.ota_on_data app_ota.o
|
0x01002524 0x01002524 0x00000040 Code RO 419 i.ota_erase_up_to app_ota.o
|
||||||
0x01002700 0x01002700 0x00000170 Code RO 412 i.ota_on_end app_ota.o
|
0x01002564 0x01002564 0x00000170 Code RO 420 i.ota_on_begin app_ota.o
|
||||||
0x01002870 0x01002870 0x00000038 Code RO 413 i.ota_program app_ota.o
|
0x010026d4 0x010026d4 0x000001a8 Code RO 421 i.ota_on_data app_ota.o
|
||||||
0x010028a8 0x010028a8 0x00000018 Code RO 414 i.ota_rd32 app_ota.o
|
0x0100287c 0x0100287c 0x00000170 Code RO 422 i.ota_on_end app_ota.o
|
||||||
0x010028c0 0x010028c0 0x0000007c Code RO 415 i.ota_respond app_ota.o
|
0x010029ec 0x010029ec 0x00000038 Code RO 423 i.ota_program app_ota.o
|
||||||
0x0100293c 0x0100293c 0x0000001c Code RO 416 i.ota_uart_sink app_ota.o
|
0x01002a24 0x01002a24 0x00000018 Code RO 424 i.ota_rd32 app_ota.o
|
||||||
0x01002958 0x01002958 0x000000cc Code RO 417 i.ota_update_bootsetting app_ota.o
|
0x01002a3c 0x01002a3c 0x0000007c Code RO 425 i.ota_respond app_ota.o
|
||||||
0x01002a24 0x01002a24 0x0000002e Code RO 518 i.parse_u32 app_bootset.o
|
0x01002ab8 0x01002ab8 0x0000001c Code RO 426 i.ota_uart_sink app_ota.o
|
||||||
0x01002a52 0x01002a52 0x00000018 Code RO 178 i.puts_boot main.o
|
0x01002ad4 0x01002ad4 0x000000cc Code RO 427 i.ota_update_bootsetting app_ota.o
|
||||||
0x01002a6a 0x01002a6a 0x00000002 PAD
|
0x01002ba0 0x01002ba0 0x0000002e Code RO 528 i.parse_u32 app_bootset.o
|
||||||
0x01002a6c 0x01002a6c 0x00000044 Code RO 20 i.read_flash_ID system_n32wb03x.o
|
0x01002bce 0x01002bce 0x00000018 Code RO 178 i.puts_boot main.o
|
||||||
0x01002ab0 0x01002ab0 0x0000004e Code RO 307 i.str_pad boot_cli.o
|
0x01002be6 0x01002be6 0x00000002 PAD
|
||||||
0x01002afe 0x01002afe 0x0000006c Code RO 308 i.u32_to_str boot_cli.o
|
0x01002be8 0x01002be8 0x00000044 Code RO 20 i.read_flash_ID system_n32wb03x.o
|
||||||
0x01002b6a 0x01002b6a 0x000001d8 Data RO 23 .constdata system_n32wb03x.o
|
0x01002c2c 0x01002c2c 0x0000004e Code RO 309 i.str_pad boot_cli.o
|
||||||
0x01002d42 0x01002d42 0x00000002 PAD
|
0x01002c7a 0x01002c7a 0x0000006c Code RO 310 i.u32_to_str boot_cli.o
|
||||||
0x01002d44 0x01002d44 0x0000006c Data RO 310 .constdata boot_cli.o
|
0x01002ce6 0x01002ce6 0x000001d8 Data RO 23 .constdata system_n32wb03x.o
|
||||||
0x01002db0 0x01002db0 0x0000000c Data RO 611 .constdata n32wb03x_rcc.o
|
0x01002ebe 0x01002ebe 0x00000002 PAD
|
||||||
0x01002dbc 0x01002dbc 0x00000324 Data RO 1188 .constdata n32wb03x_qflash.o
|
0x01002ec0 0x01002ec0 0x0000006c Data RO 312 .constdata boot_cli.o
|
||||||
0x010030e0 0x010030e0 0x00000081 Data RO 1265 .constdata mc_p.l(ctype_o.o)
|
0x01002f2c 0x01002f2c 0x0000000c Data RO 621 .constdata n32wb03x_rcc.o
|
||||||
0x01003161 0x01003161 0x00000003 PAD
|
0x01002f38 0x01002f38 0x00000324 Data RO 1198 .constdata n32wb03x_qflash.o
|
||||||
0x01003164 0x01003164 0x00000004 Data RO 1266 .constdata mc_p.l(ctype_o.o)
|
0x0100325c 0x0100325c 0x00000081 Data RO 1275 .constdata mc_p.l(ctype_o.o)
|
||||||
0x01003168 0x01003168 0x0000029a Data RO 311 .conststring boot_cli.o
|
0x010032dd 0x010032dd 0x00000003 PAD
|
||||||
0x01003402 0x01003402 0x00000002 PAD
|
0x010032e0 0x010032e0 0x00000004 Data RO 1276 .constdata mc_p.l(ctype_o.o)
|
||||||
0x01003404 0x01003404 0x00000091 Data RO 519 .conststring app_bootset.o
|
0x010032e4 0x010032e4 0x0000029a Data RO 313 .conststring boot_cli.o
|
||||||
0x01003495 0x01003495 0x00000003 PAD
|
0x0100357e 0x0100357e 0x00000002 PAD
|
||||||
0x01003498 0x01003498 0x00000020 Data RO 1305 Region$$Table anon$$obj.o
|
0x01003580 0x01003580 0x00000091 Data RO 529 .conststring app_bootset.o
|
||||||
|
0x01003611 0x01003611 0x00000003 PAD
|
||||||
|
0x01003614 0x01003614 0x00000020 Data RO 1315 Region$$Table anon$$obj.o
|
||||||
|
|
||||||
|
|
||||||
Execution Region RW_IRAM1 (Exec base: 0x20004000, Load base: 0x010034b8, Size: 0x00001a58, Max: 0x0000c000, ABSOLUTE)
|
Execution Region RW_IRAM1 (Exec base: 0x20004000, Load base: 0x01003634, Size: 0x00001cd8, Max: 0x0000c000, ABSOLUTE)
|
||||||
|
|
||||||
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
|
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
|
||||||
|
|
||||||
0x20004000 0x010034b8 0x00000004 Data RW 24 .data system_n32wb03x.o
|
0x20004000 0x01003634 0x00000004 Data RW 24 .data system_n32wb03x.o
|
||||||
0x20004004 0x010034bc 0x00000008 Data RW 251 .data boot_usart.o
|
0x20004004 0x01003638 0x00000008 Data RW 251 .data boot_usart.o
|
||||||
0x2000400c 0x010034c4 0x00000001 Data RW 312 .data boot_cli.o
|
0x2000400c 0x01003640 0x00000003 Data RW 314 .data boot_cli.o
|
||||||
0x2000400d 0x010034c5 0x00000003 PAD
|
0x2000400f 0x01003643 0x00000001 PAD
|
||||||
0x20004010 0x010034c8 0x0000003d Data RW 419 .data app_ota.o
|
0x20004010 0x01003644 0x0000003d Data RW 429 .data app_ota.o
|
||||||
0x2000404d 0x01003505 0x00000001 Data RW 520 .data app_bootset.o
|
0x2000404d 0x01003681 0x00000001 Data RW 530 .data app_bootset.o
|
||||||
0x2000404e 0x01003506 0x00000002 PAD
|
0x2000404e 0x01003682 0x00000002 PAD
|
||||||
0x20004050 0x01003508 0x0000000c Data RW 1189 .data n32wb03x_qflash.o
|
0x20004050 0x01003684 0x0000000c Data RW 1199 .data n32wb03x_qflash.o
|
||||||
0x2000405c 0x01003514 0x00000004 Data RW 1295 .data mc_p.l(errno.o)
|
0x2000405c 0x01003690 0x00000004 Data RW 1305 .data mc_p.l(errno.o)
|
||||||
0x20004060 - 0x00000034 Zero RW 22 .bss system_n32wb03x.o
|
0x20004060 - 0x00000034 Zero RW 22 .bss system_n32wb03x.o
|
||||||
0x20004094 - 0x00000c00 Zero RW 250 .bss boot_usart.o
|
0x20004094 - 0x00000c00 Zero RW 250 .bss boot_usart.o
|
||||||
0x20004c94 - 0x000000b0 Zero RW 309 .bss boot_cli.o
|
0x20004c94 - 0x00000330 Zero RW 311 .bss boot_cli.o
|
||||||
0x20004d44 - 0x000001e7 Zero RW 418 .bss app_ota.o
|
0x20004fc4 - 0x000001e7 Zero RW 428 .bss app_ota.o
|
||||||
0x20004f2b 0x01003518 0x00000001 PAD
|
0x200051ab 0x01003694 0x00000001 PAD
|
||||||
0x20004f2c - 0x00000328 Zero RW 1187 .bss n32wb03x_qflash.o
|
0x200051ac - 0x00000328 Zero RW 1197 .bss n32wb03x_qflash.o
|
||||||
0x20005254 0x01003518 0x00000004 PAD
|
0x200054d4 0x01003694 0x00000004 PAD
|
||||||
0x20005258 - 0x00000800 Zero RW 1 STACK startup_n32wb03x.o
|
0x200054d8 - 0x00000800 Zero RW 1 STACK startup_n32wb03x.o
|
||||||
|
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
@ -981,7 +1001,7 @@ Image component sizes
|
|||||||
|
|
||||||
2092 1148 145 1 0 6739 app_bootset.o
|
2092 1148 145 1 0 6739 app_bootset.o
|
||||||
2388 322 0 61 487 12597 app_ota.o
|
2388 322 0 61 487 12597 app_ota.o
|
||||||
2384 684 774 1 176 17112 boot_cli.o
|
2764 730 774 3 816 18436 boot_cli.o
|
||||||
68 6 0 0 0 874 boot_crc32.o
|
68 6 0 0 0 874 boot_crc32.o
|
||||||
472 66 0 8 3072 4161 boot_usart.o
|
472 66 0 8 3072 4161 boot_usart.o
|
||||||
628 262 0 0 0 5643 main.o
|
628 262 0 0 0 5643 main.o
|
||||||
@ -994,9 +1014,9 @@ Image component sizes
|
|||||||
900 60 472 4 52 124580 system_n32wb03x.o
|
900 60 472 4 52 124580 system_n32wb03x.o
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
10248 2666 2438 92 6648 191969 Object Totals
|
10628 2712 2438 92 7288 193293 Object Totals
|
||||||
0 0 32 0 0 0 (incl. Generated)
|
0 0 32 0 0 0 (incl. Generated)
|
||||||
14 0 7 5 5 0 (incl. Padding)
|
14 0 7 3 5 0 (incl. Padding)
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
@ -1047,15 +1067,15 @@ Image component sizes
|
|||||||
|
|
||||||
Code (inc. data) RO Data RW Data ZI Data Debug
|
Code (inc. data) RO Data RW Data ZI Data Debug
|
||||||
|
|
||||||
10922 2690 2574 96 6648 189369 Grand Totals
|
11302 2736 2574 96 7288 190605 Grand Totals
|
||||||
10922 2690 2574 96 6648 189369 ELF Image Totals
|
11302 2736 2574 96 7288 190605 ELF Image Totals
|
||||||
10922 2690 2574 96 0 0 ROM Totals
|
11302 2736 2574 96 0 0 ROM Totals
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
|
|
||||||
Total RO Size (Code + RO Data) 13496 ( 13.18kB)
|
Total RO Size (Code + RO Data) 13876 ( 13.55kB)
|
||||||
Total RW Size (RW Data + ZI Data) 6744 ( 6.59kB)
|
Total RW Size (RW Data + ZI Data) 7384 ( 7.21kB)
|
||||||
Total ROM Size (Code + RO Data + RW Data) 13592 ( 13.27kB)
|
Total ROM Size (Code + RO Data + RW Data) 13972 ( 13.64kB)
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@ -2,20 +2,20 @@
|
|||||||
Rebuild target 'caiic_boot'
|
Rebuild target 'caiic_boot'
|
||||||
assembling startup_n32wb03x.s...
|
assembling startup_n32wb03x.s...
|
||||||
compiling boot_crc32.c...
|
compiling boot_crc32.c...
|
||||||
compiling app_bootset.c...
|
|
||||||
compiling n32wb03x_gpio.c...
|
|
||||||
compiling main.c...
|
|
||||||
compiling boot_usart.c...
|
compiling boot_usart.c...
|
||||||
compiling n32wb03x_usart.c...
|
compiling n32wb03x_usart.c...
|
||||||
compiling boot_cli.c...
|
|
||||||
compiling n32wb03x_dma.c...
|
|
||||||
compiling system_n32wb03x.c...
|
|
||||||
compiling app_ota.c...
|
compiling app_ota.c...
|
||||||
|
compiling app_bootset.c...
|
||||||
compiling n32wb03x_rcc.c...
|
compiling n32wb03x_rcc.c...
|
||||||
|
compiling n32wb03x_gpio.c...
|
||||||
|
compiling system_n32wb03x.c...
|
||||||
|
compiling n32wb03x_dma.c...
|
||||||
|
compiling boot_cli.c...
|
||||||
|
compiling main.c...
|
||||||
compiling n32wb03x_qflash.c...
|
compiling n32wb03x_qflash.c...
|
||||||
linking...
|
linking...
|
||||||
Program Size: Code=10922 RO-data=2574 RW-data=96 ZI-data=6648
|
Program Size: Code=11302 RO-data=2574 RW-data=96 ZI-data=7288
|
||||||
FromELF: creating hex file...
|
FromELF: creating hex file...
|
||||||
After Build - User command #1: fromelf --bin --output=.\bin\caiic_boot.bin .\Objects\caiic_boot.axf
|
After Build - User command #1: fromelf --bin --output=.\bin\caiic_boot.bin .\Objects\caiic_boot.axf
|
||||||
".\Objects\caiic_boot.axf" - 0 Error(s), 0 Warning(s).
|
".\Objects\caiic_boot.axf" - 0 Error(s), 0 Warning(s).
|
||||||
Build Time Elapsed: 00:00:01
|
Build Time Elapsed: 00:00:02
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
/**
|
/**
|
||||||
* @file boot_cli.c
|
* @file boot_cli.c
|
||||||
* @brief Bootloader download-mode CLI: bare-metal polled line editor
|
* @brief Bootloader download-mode CLI: bare-metal polled line editor
|
||||||
* (echo, backspace, TAB command-name completion) + command table,
|
* (echo, backspace, TAB command-name completion, UP/DOWN history)
|
||||||
* and the UART OTA binary frame mode.
|
* + command table, and the UART OTA binary frame mode.
|
||||||
*
|
*
|
||||||
* Wire-compatible with the application's UART CLI so that
|
* Wire-compatible with the application's UART CLI so that
|
||||||
* tools/ble_ota_update.py works unchanged against the bootloader:
|
* tools/ble_ota_update.py works unchanged against the bootloader:
|
||||||
@ -33,6 +33,8 @@
|
|||||||
#define CLI_MAX_ARGS 8
|
#define CLI_MAX_ARGS 8
|
||||||
#define OTA_IDLE_EXIT_MS 3000u /* binary mode fallback exit */
|
#define OTA_IDLE_EXIT_MS 3000u /* binary mode fallback exit */
|
||||||
#define CLI_KEY_TAB 0x09 /* TAB: command-name completion */
|
#define CLI_KEY_TAB 0x09 /* TAB: command-name completion */
|
||||||
|
#define CLI_KEY_ESC 0x1B /* ESC: arrow-key escape sequence start */
|
||||||
|
#define CLI_HISTORY_SIZE 8 /* number of remembered command lines */
|
||||||
|
|
||||||
/* ------------------------------------------------------------------ */
|
/* ------------------------------------------------------------------ */
|
||||||
/* Output (cli_core.h shim implementation) */
|
/* Output (cli_core.h shim implementation) */
|
||||||
@ -303,7 +305,7 @@ static void CmdHelp(int argc, char* argv[])
|
|||||||
{
|
{
|
||||||
cli_printf(" %-8s %s\r\n", s_cmds[i].name, s_cmds[i].help);
|
cli_printf(" %-8s %s\r\n", s_cmds[i].name, s_cmds[i].help);
|
||||||
}
|
}
|
||||||
cli_write("keys: TAB = complete\r\n");
|
cli_write("keys: TAB = complete, UP/DOWN = history\r\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ------------------------------------------------------------------ */
|
/* ------------------------------------------------------------------ */
|
||||||
@ -479,6 +481,49 @@ static uint16_t boot_cli_tab_complete(char* line, uint16_t len)
|
|||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------------ */
|
||||||
|
/* Command history (ring buffer) */
|
||||||
|
/* ------------------------------------------------------------------ */
|
||||||
|
|
||||||
|
static char s_history[CLI_HISTORY_SIZE][CLI_LINE_SIZE];
|
||||||
|
static uint8_t s_histCount = 0; /* number of valid entries */
|
||||||
|
static uint8_t s_histHead = 0; /* next write position */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Store a command line in the history ring (skips empty lines and
|
||||||
|
* repeats of the most recent entry).
|
||||||
|
*/
|
||||||
|
static void cli_history_add(const char* line)
|
||||||
|
{
|
||||||
|
if (line[0] == '\0')
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (s_histCount > 0u)
|
||||||
|
{
|
||||||
|
uint8_t last = (uint8_t)((s_histHead + CLI_HISTORY_SIZE - 1u) % CLI_HISTORY_SIZE);
|
||||||
|
if (strcmp(s_history[last], line) == 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
strcpy(s_history[s_histHead], line);
|
||||||
|
s_histHead = (uint8_t)((s_histHead + 1u) % CLI_HISTORY_SIZE);
|
||||||
|
if (s_histCount < CLI_HISTORY_SIZE)
|
||||||
|
{
|
||||||
|
s_histCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get a history entry; nav = 0 is the newest entry.
|
||||||
|
*/
|
||||||
|
static const char* cli_history_get(int nav)
|
||||||
|
{
|
||||||
|
int idx = ((int)s_histHead - 1 - nav + CLI_HISTORY_SIZE) % CLI_HISTORY_SIZE;
|
||||||
|
return s_history[idx];
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Download-mode main loop. Never returns (leaves via reset only).
|
* @brief Download-mode main loop. Never returns (leaves via reset only).
|
||||||
*/
|
*/
|
||||||
@ -486,6 +531,9 @@ void boot_cli_run(void)
|
|||||||
{
|
{
|
||||||
static char s_line[CLI_LINE_SIZE];
|
static char s_line[CLI_LINE_SIZE];
|
||||||
uint16_t len = 0;
|
uint16_t len = 0;
|
||||||
|
uint16_t shownLen = 0; /* chars currently displayed after the prompt */
|
||||||
|
uint8_t escState = 0; /* 0=normal, 1=got ESC, 2=got ESC '[' */
|
||||||
|
int histNav = -1; /* -1 = editing, 0.. = history entry (0=newest) */
|
||||||
uint32_t otaLastRx = 0;
|
uint32_t otaLastRx = 0;
|
||||||
|
|
||||||
cli_write("\r\nCLI ready (bootloader download mode). Type 'help' for commands.\r\n"
|
cli_write("\r\nCLI ready (bootloader download mode). Type 'help' for commands.\r\n"
|
||||||
@ -505,6 +553,7 @@ void boot_cli_run(void)
|
|||||||
app_ota_chan_idle();
|
app_ota_chan_idle();
|
||||||
cli_write("\r\n[ota] binary mode OFF (idle)\r\n" BOOT_CLI_PROMPT);
|
cli_write("\r\n[ota] binary mode OFF (idle)\r\n" BOOT_CLI_PROMPT);
|
||||||
len = 0;
|
len = 0;
|
||||||
|
shownLen = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (boot_usart_read(&ch) == 0)
|
if (boot_usart_read(&ch) == 0)
|
||||||
@ -520,18 +569,66 @@ void boot_cli_run(void)
|
|||||||
s_otaMode = 0;
|
s_otaMode = 0;
|
||||||
cli_write("\r\n[ota] binary mode OFF (abort)\r\n" BOOT_CLI_PROMPT);
|
cli_write("\r\n[ota] binary mode OFF (abort)\r\n" BOOT_CLI_PROMPT);
|
||||||
len = 0;
|
len = 0;
|
||||||
|
shownLen = 0;
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Escape sequences (arrow keys: ESC '[' 'A'/'B') */
|
||||||
|
if (escState == 1)
|
||||||
|
{
|
||||||
|
escState = (ch == '[') ? 2 : 0;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (escState == 2)
|
||||||
|
{
|
||||||
|
escState = 0;
|
||||||
|
if (ch == 'A') /* UP: older history entry */
|
||||||
|
{
|
||||||
|
if (histNav + 1 < (int)s_histCount)
|
||||||
|
{
|
||||||
|
histNav++;
|
||||||
|
strcpy(s_line, cli_history_get(histNav));
|
||||||
|
shownLen = boot_cli_redraw(s_line, shownLen);
|
||||||
|
len = (uint16_t)strlen(s_line);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (ch == 'B') /* DOWN: newer entry / back to empty line */
|
||||||
|
{
|
||||||
|
if (histNav >= 0)
|
||||||
|
{
|
||||||
|
histNav--;
|
||||||
|
if (histNav >= 0)
|
||||||
|
{
|
||||||
|
strcpy(s_line, cli_history_get(histNav));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
s_line[0] = '\0';
|
||||||
|
}
|
||||||
|
shownLen = boot_cli_redraw(s_line, shownLen);
|
||||||
|
len = (uint16_t)strlen(s_line);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* other escape sequences are ignored */
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
switch (ch)
|
switch (ch)
|
||||||
{
|
{
|
||||||
|
case CLI_KEY_ESC:
|
||||||
|
escState = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
case '\r':
|
case '\r':
|
||||||
case '\n':
|
case '\n':
|
||||||
cli_write("\r\n");
|
cli_write("\r\n");
|
||||||
s_line[len] = '\0';
|
s_line[len] = '\0';
|
||||||
|
cli_history_add(s_line); /* copy before dispatch tokenizes in place */
|
||||||
(void)cli_exec_line(s_line);
|
(void)cli_exec_line(s_line);
|
||||||
len = 0;
|
len = 0;
|
||||||
|
shownLen = 0;
|
||||||
|
histNav = -1;
|
||||||
cli_write(BOOT_CLI_PROMPT);
|
cli_write(BOOT_CLI_PROMPT);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -541,18 +638,21 @@ void boot_cli_run(void)
|
|||||||
{
|
{
|
||||||
len--;
|
len--;
|
||||||
cli_write("\b \b");
|
cli_write("\b \b");
|
||||||
|
shownLen = len;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CLI_KEY_TAB:
|
case CLI_KEY_TAB:
|
||||||
len = boot_cli_tab_complete(s_line, len);
|
len = boot_cli_tab_complete(s_line, len);
|
||||||
|
shownLen = len;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
if (ch >= 0x20u && len < CLI_LINE_SIZE - 1u)
|
if (ch >= 0x20u && ch < 0x7Fu && len < CLI_LINE_SIZE - 1u)
|
||||||
{
|
{
|
||||||
s_line[len++] = (char)ch;
|
s_line[len++] = (char)ch;
|
||||||
boot_usart_write(&ch, 1); /* echo */
|
boot_usart_write(&ch, 1); /* echo */
|
||||||
|
shownLen = len;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,6 +6,6 @@
|
|||||||
#ifndef __BOOT_VERSION_H__
|
#ifndef __BOOT_VERSION_H__
|
||||||
#define __BOOT_VERSION_H__
|
#define __BOOT_VERSION_H__
|
||||||
|
|
||||||
#define BOOT_FW_VERSION "V1.01.03"
|
#define BOOT_FW_VERSION "V1.01.04"
|
||||||
|
|
||||||
#endif /* __BOOT_VERSION_H__ */
|
#endif /* __BOOT_VERSION_H__ */
|
||||||
|
|||||||
18
docs/开发日志.md
18
docs/开发日志.md
@ -1431,3 +1431,21 @@ APP2 链接的镜像发向 APP1 区。设备端 END 校验(向量表 Reset PC
|
|||||||
一致(提示只放在 `help` 里)。
|
一致(提示只放在 `help` 里)。
|
||||||
- 版本:`Boot/src/boot_version.h` V1.01.02 → V1.01.03;构建 0E/0W,
|
- 版本:`Boot/src/boot_version.h` V1.01.02 → V1.01.03;构建 0E/0W,
|
||||||
`Code=10922 RO-data=2574 RW-data=96 ZI-data=6648`。
|
`Code=10922 RO-data=2574 RW-data=96 ZI-data=6648`。
|
||||||
|
|
||||||
|
## 56. Boot download CLI 移植 UP/DOWN 历史(2026-09-06,Boot V1.01.04)
|
||||||
|
|
||||||
|
- 从 APP 的 `mcm-ddc-ble/src/app_cli.c` 把 **UP/DOWN 箭头历史导航**移植到
|
||||||
|
`Boot/src/boot_cli.c`,与 TAB 补全一起使 Boot CLI 行编辑能力与 APP 对齐:
|
||||||
|
- 命令历史环形缓冲 `s_history[CLI_HISTORY_SIZE=8][CLI_LINE_SIZE=80]` +
|
||||||
|
`cli_history_add()`(跳过空行/相邻重复)/ `cli_history_get(nav)`;
|
||||||
|
- `boot_cli_run()`:新增 `escState`(ESC / ESC '[' 两级状态机,识别
|
||||||
|
`ESC [ A`=上、`ESC [ B`=下)、`histNav`(-1=编辑,0..=历史索引)、
|
||||||
|
`shownLen`(屏显行长,用于重画);UP 取更早历史、DOWN 取更新/回空行,
|
||||||
|
切换时 `boot_cli_redraw()` 重画提示符+整行;
|
||||||
|
- 回车执行前 `cli_history_add()` 入栈并复位 `histNav/shownLen`;退格/回显/
|
||||||
|
TAB 均同步维护 `shownLen`;普通字符回显加 `ch < 0x7F` 过滤(对齐 APP);
|
||||||
|
- `help` 提示串由 `keys: TAB = complete` 更新为
|
||||||
|
`keys: TAB = complete, UP/DOWN = history`(与 APP 一致)。
|
||||||
|
- 版本:`Boot/src/boot_version.h` V1.01.03 → V1.01.04;构建 0E/0W,
|
||||||
|
`Code=11302 RO-data=2574 RW-data=96 ZI-data=7288`(+640B 历史环),
|
||||||
|
bin 13972B(16KB 区内),`__initial_sp=0x20005CD8`(远离 0x2000C000 悬崖)。
|
||||||
|
|||||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user