CLI 新增 pinset 管脚高低电平命令 (Boot V1.00.07 / APP V1.00.31)
- pinset <pxN> [0|1]: 设置 GPIO 输出高低 / 读当前电平 (pa0-6/pb0-13) - Boot/src/boot_cli.c + mcm-ddc-ble/src/cli_core.c 各加一份同名命令 - 对 SWD(PA4/PA5) / 控制台(PB6/PB7) 重配前打印 warning - Boot V1.00.06 -> V1.00.07; APP V1.00.30 -> V1.00.31 (0x0001001F) - docs/开发日志.md: 新增 §59
This commit is contained in:
parent
011feee05d
commit
3d6567819a
@ -74,6 +74,15 @@ Section Cross References
|
||||
boot_cli.o(i.CmdOta) refers to boot_cli.o(i.cli_write) for cli_write
|
||||
boot_cli.o(i.CmdOta) refers to boot_cli.o(.conststring) for .conststring
|
||||
boot_cli.o(i.CmdOta) refers to boot_cli.o(.data) for s_otaMode
|
||||
boot_cli.o(i.CmdPinSet) refers to boot_cli.o(i.cli_write) for cli_write
|
||||
boot_cli.o(i.CmdPinSet) refers to boot_cli.o(i.pinset_parse) for pinset_parse
|
||||
boot_cli.o(i.CmdPinSet) refers to boot_cli.o(i.cli_printf) for cli_printf
|
||||
boot_cli.o(i.CmdPinSet) refers to n32wb03x_rcc.o(i.RCC_EnableAPB2PeriphClk) for RCC_EnableAPB2PeriphClk
|
||||
boot_cli.o(i.CmdPinSet) refers to n32wb03x_gpio.o(i.GPIO_InitStruct) for GPIO_InitStruct
|
||||
boot_cli.o(i.CmdPinSet) refers to n32wb03x_gpio.o(i.GPIO_InitPeripheral) for GPIO_InitPeripheral
|
||||
boot_cli.o(i.CmdPinSet) refers to n32wb03x_gpio.o(i.GPIO_SetBits) for GPIO_SetBits
|
||||
boot_cli.o(i.CmdPinSet) refers to n32wb03x_gpio.o(i.GPIO_ResetBits) for GPIO_ResetBits
|
||||
boot_cli.o(i.CmdPinSet) refers to n32wb03x_gpio.o(i.GPIO_ReadInputDataBit) for GPIO_ReadInputDataBit
|
||||
boot_cli.o(i.CmdReset) refers to boot_cli.o(i.cli_write) for cli_write
|
||||
boot_cli.o(i.CmdReset) refers to boot_usart.o(i.boot_delay_ms) for boot_delay_ms
|
||||
boot_cli.o(i.CmdUartInfo) refers to boot_cli.o(i.cli_write) for cli_write
|
||||
@ -133,6 +142,7 @@ Section Cross References
|
||||
boot_cli.o(.constdata) refers to app_bootset.o(i.AppBootset_CmdAppswitch) for AppBootset_CmdAppswitch
|
||||
boot_cli.o(.constdata) refers to boot_cli.o(i.CmdOta) for CmdOta
|
||||
boot_cli.o(.constdata) refers to boot_cli.o(i.CmdReset) for CmdReset
|
||||
boot_cli.o(.constdata) refers to boot_cli.o(i.CmdPinSet) for CmdPinSet
|
||||
boot_cli.o(.constdata) refers to boot_cli.o(i.CmdUartInfo) for CmdUartInfo
|
||||
app_ota.o(i.app_ota_abort) refers to app_ota.o(.data) for s_active
|
||||
app_ota.o(i.app_ota_chan_idle) refers to app_ota.o(.data) for s_chanState
|
||||
@ -341,11 +351,8 @@ Removing Unused input sections from the image.
|
||||
Removing n32wb03x_gpio.o(i.GPIO_DeInit), (68 bytes).
|
||||
Removing n32wb03x_gpio.o(i.GPIO_DeInitPin), (126 bytes).
|
||||
Removing n32wb03x_gpio.o(i.GPIO_ReadInputData), (8 bytes).
|
||||
Removing n32wb03x_gpio.o(i.GPIO_ReadInputDataBit), (20 bytes).
|
||||
Removing n32wb03x_gpio.o(i.GPIO_ReadOutputData), (8 bytes).
|
||||
Removing n32wb03x_gpio.o(i.GPIO_ReadOutputDataBit), (20 bytes).
|
||||
Removing n32wb03x_gpio.o(i.GPIO_ResetBits), (4 bytes).
|
||||
Removing n32wb03x_gpio.o(i.GPIO_SetBits), (4 bytes).
|
||||
Removing n32wb03x_gpio.o(i.GPIO_TogglePin), (8 bytes).
|
||||
Removing n32wb03x_gpio.o(i.GPIO_Write), (4 bytes).
|
||||
Removing n32wb03x_gpio.o(i.GPIO_WriteBit), (12 bytes).
|
||||
@ -384,7 +391,7 @@ Removing Unused input sections from the image.
|
||||
Removing n32wb03x_qflash.o(i.Qflash_Read), (68 bytes).
|
||||
Removing n32wb03x_gpio.o(i.__ARM_common_switch8), (28 bytes).
|
||||
|
||||
98 unused section(s) (total 3926 bytes) removed from the image.
|
||||
95 unused section(s) (total 3898 bytes) removed from the image.
|
||||
|
||||
==============================================================================
|
||||
|
||||
@ -394,34 +401,34 @@ Image Symbol Table
|
||||
|
||||
Symbol Name Value Ov Type Size Object(Section)
|
||||
|
||||
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isspace_o.o ABSOLUTE
|
||||
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isalpha_o.o ABSOLUTE
|
||||
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isdigit_o.o ABSOLUTE
|
||||
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isblank_o.o ABSOLUTE
|
||||
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isxdigit_o.o ABSOLUTE
|
||||
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isalnum_o.o ABSOLUTE
|
||||
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isgraph_o.o ABSOLUTE
|
||||
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 islower_o.o ABSOLUTE
|
||||
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 ctype_o.o ABSOLUTE
|
||||
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isgraph_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 isxdigit_o.o ABSOLUTE
|
||||
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isupper_o.o ABSOLUTE
|
||||
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isalnum_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 isprint_o.o ABSOLUTE
|
||||
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isupper_o.o ABSOLUTE
|
||||
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 ispunct_o.o ABSOLUTE
|
||||
../clib/microlib/ctype/ctype.c 0x00000000 Number 0 iscntrl_o.o ABSOLUTE
|
||||
../clib/microlib/division.c 0x00000000 Number 0 uidiv.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 entry7b.o ABSOLUTE
|
||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
|
||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
|
||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
|
||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
|
||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
|
||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
|
||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
|
||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.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 entry9b.o ABSOLUTE
|
||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
|
||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
|
||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.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 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 entry10b.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/memcpy.c 0x00000000 Number 0 memcpyb.o ABSOLUTE
|
||||
@ -432,8 +439,8 @@ Image Symbol Table
|
||||
../clib/microlib/string/strlen.c 0x00000000 Number 0 strlen.o ABSOLUTE
|
||||
../clib/microlib/string/strncmp.c 0x00000000 Number 0 strncmp.o ABSOLUTE
|
||||
../clib/scanf.c 0x00000000 Number 0 strtoul.o ABSOLUTE
|
||||
../clib/scanf.c 0x00000000 Number 0 _strtoul.o ABSOLUTE
|
||||
../clib/scanf.c 0x00000000 Number 0 _chval.o ABSOLUTE
|
||||
../clib/scanf.c 0x00000000 Number 0 _strtoul.o ABSOLUTE
|
||||
..\..\mcm-ddc-ble\src\app_bootset.c 0x00000000 Number 0 app_bootset.o ABSOLUTE
|
||||
..\..\mcm-ddc-ble\src\app_ota.c 0x00000000 Number 0 app_ota.o ABSOLUTE
|
||||
..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\CMSIS\device\startup\startup_n32wb03x.s 0x00000000 Number 0 startup_n32wb03x.o ABSOLUTE
|
||||
@ -497,127 +504,134 @@ Image Symbol Table
|
||||
CmdHelp 0x01000a39 Thumb Code 126 boot_cli.o(i.CmdHelp)
|
||||
i.CmdOta 0x01000b3c Section 0 boot_cli.o(i.CmdOta)
|
||||
CmdOta 0x01000b3d Thumb Code 20 boot_cli.o(i.CmdOta)
|
||||
i.CmdReset 0x01000b58 Section 0 boot_cli.o(i.CmdReset)
|
||||
CmdReset 0x01000b59 Thumb Code 34 boot_cli.o(i.CmdReset)
|
||||
i.CmdUartInfo 0x01000b94 Section 0 boot_cli.o(i.CmdUartInfo)
|
||||
CmdUartInfo 0x01000b95 Thumb Code 26 boot_cli.o(i.CmdUartInfo)
|
||||
i.CmdVersion 0x01000c44 Section 0 boot_cli.o(i.CmdVersion)
|
||||
CmdVersion 0x01000c45 Thumb Code 26 boot_cli.o(i.CmdVersion)
|
||||
i.DMA_DeInit 0x01000cb8 Section 0 n32wb03x_dma.o(i.DMA_DeInit)
|
||||
i.DMA_EnableChannel 0x01000d58 Section 0 n32wb03x_dma.o(i.DMA_EnableChannel)
|
||||
i.DMA_GetCurrDataCounter 0x01000d74 Section 0 n32wb03x_dma.o(i.DMA_GetCurrDataCounter)
|
||||
i.DMA_Init 0x01000d7c Section 0 n32wb03x_dma.o(i.DMA_Init)
|
||||
i.DMA_RequestRemap 0x01000dbc Section 0 n32wb03x_dma.o(i.DMA_RequestRemap)
|
||||
i.GPIO_InitPeripheral 0x01000dcc Section 0 n32wb03x_gpio.o(i.GPIO_InitPeripheral)
|
||||
i.GPIO_InitStruct 0x01000ed4 Section 0 n32wb03x_gpio.o(i.GPIO_InitStruct)
|
||||
i.OTPTrim_Read 0x01000ef0 Section 0 system_n32wb03x.o(i.OTPTrim_Read)
|
||||
i.Qflash_Erase_Sector 0x01000fbc Section 0 n32wb03x_qflash.o(i.Qflash_Erase_Sector)
|
||||
i.Qflash_Init 0x01000ff8 Section 0 n32wb03x_qflash.o(i.Qflash_Init)
|
||||
i.Qflash_Write 0x01001030 Section 0 n32wb03x_qflash.o(i.Qflash_Write)
|
||||
i.RCC_EnableAHBPeriphClk 0x01001074 Section 0 n32wb03x_rcc.o(i.RCC_EnableAHBPeriphClk)
|
||||
i.RCC_EnableAPB2PeriphClk 0x01001094 Section 0 n32wb03x_rcc.o(i.RCC_EnableAPB2PeriphClk)
|
||||
i.RCC_GetClocksFreqValue 0x010010b4 Section 0 n32wb03x_rcc.o(i.RCC_GetClocksFreqValue)
|
||||
i.RCC_HsiCalib 0x01001158 Section 0 system_n32wb03x.o(i.RCC_HsiCalib)
|
||||
RCC_HsiCalib 0x01001159 Thumb Code 296 system_n32wb03x.o(i.RCC_HsiCalib)
|
||||
i.SystemInit 0x01001288 Section 0 system_n32wb03x.o(i.SystemInit)
|
||||
i.SystemTrimValueRead 0x010013a4 Section 0 system_n32wb03x.o(i.SystemTrimValueRead)
|
||||
i.USART_Enable 0x010013b8 Section 0 n32wb03x_usart.o(i.USART_Enable)
|
||||
i.USART_EnableDMA 0x010013d8 Section 0 n32wb03x_usart.o(i.USART_EnableDMA)
|
||||
i.USART_GetFlagStatus 0x010013ec Section 0 n32wb03x_usart.o(i.USART_GetFlagStatus)
|
||||
i.USART_Init 0x0100140c Section 0 n32wb03x_usart.o(i.USART_Init)
|
||||
i.USART_SendData 0x010014c0 Section 0 n32wb03x_usart.o(i.USART_SendData)
|
||||
i.__aeabi_errno_addr 0x010014c8 Section 0 errno.o(i.__aeabi_errno_addr)
|
||||
i.__scatterload_copy 0x010014d0 Section 14 handlers.o(i.__scatterload_copy)
|
||||
i.__scatterload_null 0x010014de Section 2 handlers.o(i.__scatterload_null)
|
||||
i.__scatterload_zeroinit 0x010014e0 Section 14 handlers.o(i.__scatterload_zeroinit)
|
||||
i.__set_PRIMASK 0x010014ee Section 0 system_n32wb03x.o(i.__set_PRIMASK)
|
||||
__set_PRIMASK 0x010014ef Thumb Code 6 system_n32wb03x.o(i.__set_PRIMASK)
|
||||
i.__set_PRIMASK 0x010014f4 Section 0 n32wb03x_qflash.o(i.__set_PRIMASK)
|
||||
__set_PRIMASK 0x010014f5 Thumb Code 6 n32wb03x_qflash.o(i.__set_PRIMASK)
|
||||
i.app_ota_abort 0x010014fc Section 0 app_ota.o(i.app_ota_abort)
|
||||
i.app_ota_chan_idle 0x01001538 Section 0 app_ota.o(i.app_ota_chan_idle)
|
||||
i.app_ota_chan_rx 0x0100154c Section 0 app_ota.o(i.app_ota_chan_rx)
|
||||
i.app_ota_chan_rx_uart 0x0100168c Section 0 app_ota.o(i.app_ota_chan_rx_uart)
|
||||
i.app_ota_handle_frame 0x010016b0 Section 0 app_ota.o(i.app_ota_handle_frame)
|
||||
i.app_ota_reset_poll 0x0100172c Section 0 app_ota.o(i.app_ota_reset_poll)
|
||||
i.boot_cli_redraw 0x01001788 Section 0 boot_cli.o(i.boot_cli_redraw)
|
||||
boot_cli_redraw 0x01001789 Thumb Code 60 boot_cli.o(i.boot_cli_redraw)
|
||||
i.boot_cli_run 0x010017d4 Section 0 boot_cli.o(i.boot_cli_run)
|
||||
i.boot_cli_tab_complete 0x010019f4 Section 0 boot_cli.o(i.boot_cli_tab_complete)
|
||||
boot_cli_tab_complete 0x010019f5 Thumb Code 306 boot_cli.o(i.boot_cli_tab_complete)
|
||||
i.boot_delay_ms 0x01001b38 Section 0 boot_usart.o(i.boot_delay_ms)
|
||||
i.boot_millis 0x01001b50 Section 0 boot_usart.o(i.boot_millis)
|
||||
i.boot_usart_init 0x01001b78 Section 0 boot_usart.o(i.boot_usart_init)
|
||||
i.boot_usart_read 0x01001c88 Section 0 boot_usart.o(i.boot_usart_read)
|
||||
i.boot_usart_rx_head 0x01001cc8 Section 0 boot_usart.o(i.boot_usart_rx_head)
|
||||
boot_usart_rx_head 0x01001cc9 Thumb Code 18 boot_usart.o(i.boot_usart_rx_head)
|
||||
i.boot_usart_write 0x01001ce0 Section 0 boot_usart.o(i.boot_usart_write)
|
||||
i.bootset_commit 0x01001d10 Section 0 app_bootset.o(i.bootset_commit)
|
||||
bootset_commit 0x01001d11 Thumb Code 74 app_bootset.o(i.bootset_commit)
|
||||
i.bootset_crc 0x01001d64 Section 0 app_bootset.o(i.bootset_crc)
|
||||
bootset_crc 0x01001d65 Thumb Code 14 app_bootset.o(i.bootset_crc)
|
||||
i.bootset_ensure_qflash 0x01001d74 Section 0 app_bootset.o(i.bootset_ensure_qflash)
|
||||
bootset_ensure_qflash 0x01001d75 Thumb Code 22 app_bootset.o(i.bootset_ensure_qflash)
|
||||
i.bootset_print 0x01001d90 Section 0 app_bootset.o(i.bootset_print)
|
||||
bootset_print 0x01001d91 Thumb Code 98 app_bootset.o(i.bootset_print)
|
||||
i.bootset_valid 0x01001efc Section 0 app_bootset.o(i.bootset_valid)
|
||||
bootset_valid 0x01001efd Thumb Code 32 app_bootset.o(i.bootset_valid)
|
||||
i.caiic_crc32 0x01001f20 Section 0 boot_crc32.o(i.caiic_crc32)
|
||||
i.cli_exec_line 0x01001f64 Section 0 boot_cli.o(i.cli_exec_line)
|
||||
cli_exec_line 0x01001f65 Thumb Code 162 boot_cli.o(i.cli_exec_line)
|
||||
i.cli_history_add 0x01002030 Section 0 boot_cli.o(i.cli_history_add)
|
||||
cli_history_add 0x01002031 Thumb Code 106 boot_cli.o(i.cli_history_add)
|
||||
i.cli_history_get 0x010020a8 Section 0 boot_cli.o(i.cli_history_get)
|
||||
cli_history_get 0x010020a9 Thumb Code 36 boot_cli.o(i.cli_history_get)
|
||||
i.cli_printf 0x010020d4 Section 0 boot_cli.o(i.cli_printf)
|
||||
i.cli_write 0x01002270 Section 0 boot_cli.o(i.cli_write)
|
||||
i.image_sane 0x01002288 Section 0 main.o(i.image_sane)
|
||||
image_sane 0x01002289 Thumb Code 44 main.o(i.image_sane)
|
||||
i.jump_to_app 0x010022bc Section 0 main.o(i.jump_to_app)
|
||||
jump_to_app 0x010022bd Thumb Code 30 main.o(i.jump_to_app)
|
||||
i.main 0x010022e0 Section 0 main.o(i.main)
|
||||
i.ota_crc16 0x01002464 Section 0 app_ota.o(i.ota_crc16)
|
||||
ota_crc16 0x01002465 Thumb Code 68 app_ota.o(i.ota_crc16)
|
||||
i.ota_erase_up_to 0x010024b0 Section 0 app_ota.o(i.ota_erase_up_to)
|
||||
ota_erase_up_to 0x010024b1 Thumb Code 54 app_ota.o(i.ota_erase_up_to)
|
||||
i.ota_on_begin 0x010024f0 Section 0 app_ota.o(i.ota_on_begin)
|
||||
ota_on_begin 0x010024f1 Thumb Code 294 app_ota.o(i.ota_on_begin)
|
||||
i.ota_on_data 0x01002660 Section 0 app_ota.o(i.ota_on_data)
|
||||
ota_on_data 0x01002661 Thumb Code 396 app_ota.o(i.ota_on_data)
|
||||
i.ota_on_end 0x01002808 Section 0 app_ota.o(i.ota_on_end)
|
||||
ota_on_end 0x01002809 Thumb Code 326 app_ota.o(i.ota_on_end)
|
||||
i.ota_program 0x01002978 Section 0 app_ota.o(i.ota_program)
|
||||
ota_program 0x01002979 Thumb Code 46 app_ota.o(i.ota_program)
|
||||
i.ota_rd32 0x010029b0 Section 0 app_ota.o(i.ota_rd32)
|
||||
ota_rd32 0x010029b1 Thumb Code 24 app_ota.o(i.ota_rd32)
|
||||
i.ota_respond 0x010029c8 Section 0 app_ota.o(i.ota_respond)
|
||||
ota_respond 0x010029c9 Thumb Code 118 app_ota.o(i.ota_respond)
|
||||
i.ota_uart_sink 0x01002a44 Section 0 app_ota.o(i.ota_uart_sink)
|
||||
ota_uart_sink 0x01002a45 Thumb Code 22 app_ota.o(i.ota_uart_sink)
|
||||
i.ota_update_bootsetting 0x01002a60 Section 0 app_ota.o(i.ota_update_bootsetting)
|
||||
ota_update_bootsetting 0x01002a61 Thumb Code 174 app_ota.o(i.ota_update_bootsetting)
|
||||
i.parse_u32 0x01002b2c Section 0 app_bootset.o(i.parse_u32)
|
||||
parse_u32 0x01002b2d Thumb Code 46 app_bootset.o(i.parse_u32)
|
||||
i.puts_boot 0x01002b5a Section 0 main.o(i.puts_boot)
|
||||
puts_boot 0x01002b5b Thumb Code 24 main.o(i.puts_boot)
|
||||
i.read_flash_ID 0x01002b74 Section 0 system_n32wb03x.o(i.read_flash_ID)
|
||||
read_flash_ID 0x01002b75 Thumb Code 62 system_n32wb03x.o(i.read_flash_ID)
|
||||
i.str_pad 0x01002bb8 Section 0 boot_cli.o(i.str_pad)
|
||||
str_pad 0x01002bb9 Thumb Code 78 boot_cli.o(i.str_pad)
|
||||
i.u32_to_str 0x01002c06 Section 0 boot_cli.o(i.u32_to_str)
|
||||
u32_to_str 0x01002c07 Thumb Code 108 boot_cli.o(i.u32_to_str)
|
||||
.constdata 0x01002c72 Section 472 system_n32wb03x.o(.constdata)
|
||||
.constdata 0x01002e4c Section 108 boot_cli.o(.constdata)
|
||||
s_cmds 0x01002e4c Data 108 boot_cli.o(.constdata)
|
||||
.constdata 0x01002eb8 Section 12 n32wb03x_rcc.o(.constdata)
|
||||
s_ApbPresTable 0x01002eb8 Data 8 n32wb03x_rcc.o(.constdata)
|
||||
s_AhbPresTable 0x01002ec0 Data 4 n32wb03x_rcc.o(.constdata)
|
||||
.constdata 0x01002ec4 Section 804 n32wb03x_qflash.o(.constdata)
|
||||
.constdata 0x010031e8 Section 129 ctype_o.o(.constdata)
|
||||
.constdata 0x0100326c Section 4 ctype_o.o(.constdata)
|
||||
table 0x0100326c Data 4 ctype_o.o(.constdata)
|
||||
.conststring 0x01003270 Section 666 boot_cli.o(.conststring)
|
||||
.conststring 0x0100350c Section 145 app_bootset.o(.conststring)
|
||||
i.CmdPinSet 0x01000b58 Section 0 boot_cli.o(i.CmdPinSet)
|
||||
CmdPinSet 0x01000b59 Thumb Code 268 boot_cli.o(i.CmdPinSet)
|
||||
i.CmdReset 0x01000d5c Section 0 boot_cli.o(i.CmdReset)
|
||||
CmdReset 0x01000d5d Thumb Code 34 boot_cli.o(i.CmdReset)
|
||||
i.CmdUartInfo 0x01000d98 Section 0 boot_cli.o(i.CmdUartInfo)
|
||||
CmdUartInfo 0x01000d99 Thumb Code 26 boot_cli.o(i.CmdUartInfo)
|
||||
i.CmdVersion 0x01000e48 Section 0 boot_cli.o(i.CmdVersion)
|
||||
CmdVersion 0x01000e49 Thumb Code 26 boot_cli.o(i.CmdVersion)
|
||||
i.DMA_DeInit 0x01000ebc Section 0 n32wb03x_dma.o(i.DMA_DeInit)
|
||||
i.DMA_EnableChannel 0x01000f5c Section 0 n32wb03x_dma.o(i.DMA_EnableChannel)
|
||||
i.DMA_GetCurrDataCounter 0x01000f78 Section 0 n32wb03x_dma.o(i.DMA_GetCurrDataCounter)
|
||||
i.DMA_Init 0x01000f80 Section 0 n32wb03x_dma.o(i.DMA_Init)
|
||||
i.DMA_RequestRemap 0x01000fc0 Section 0 n32wb03x_dma.o(i.DMA_RequestRemap)
|
||||
i.GPIO_InitPeripheral 0x01000fd0 Section 0 n32wb03x_gpio.o(i.GPIO_InitPeripheral)
|
||||
i.GPIO_InitStruct 0x010010d8 Section 0 n32wb03x_gpio.o(i.GPIO_InitStruct)
|
||||
i.GPIO_ReadInputDataBit 0x010010f4 Section 0 n32wb03x_gpio.o(i.GPIO_ReadInputDataBit)
|
||||
i.GPIO_ResetBits 0x01001108 Section 0 n32wb03x_gpio.o(i.GPIO_ResetBits)
|
||||
i.GPIO_SetBits 0x0100110c Section 0 n32wb03x_gpio.o(i.GPIO_SetBits)
|
||||
i.OTPTrim_Read 0x01001110 Section 0 system_n32wb03x.o(i.OTPTrim_Read)
|
||||
i.Qflash_Erase_Sector 0x010011dc Section 0 n32wb03x_qflash.o(i.Qflash_Erase_Sector)
|
||||
i.Qflash_Init 0x01001218 Section 0 n32wb03x_qflash.o(i.Qflash_Init)
|
||||
i.Qflash_Write 0x01001250 Section 0 n32wb03x_qflash.o(i.Qflash_Write)
|
||||
i.RCC_EnableAHBPeriphClk 0x01001294 Section 0 n32wb03x_rcc.o(i.RCC_EnableAHBPeriphClk)
|
||||
i.RCC_EnableAPB2PeriphClk 0x010012b4 Section 0 n32wb03x_rcc.o(i.RCC_EnableAPB2PeriphClk)
|
||||
i.RCC_GetClocksFreqValue 0x010012d4 Section 0 n32wb03x_rcc.o(i.RCC_GetClocksFreqValue)
|
||||
i.RCC_HsiCalib 0x01001378 Section 0 system_n32wb03x.o(i.RCC_HsiCalib)
|
||||
RCC_HsiCalib 0x01001379 Thumb Code 296 system_n32wb03x.o(i.RCC_HsiCalib)
|
||||
i.SystemInit 0x010014a8 Section 0 system_n32wb03x.o(i.SystemInit)
|
||||
i.SystemTrimValueRead 0x010015c4 Section 0 system_n32wb03x.o(i.SystemTrimValueRead)
|
||||
i.USART_Enable 0x010015d8 Section 0 n32wb03x_usart.o(i.USART_Enable)
|
||||
i.USART_EnableDMA 0x010015f8 Section 0 n32wb03x_usart.o(i.USART_EnableDMA)
|
||||
i.USART_GetFlagStatus 0x0100160c Section 0 n32wb03x_usart.o(i.USART_GetFlagStatus)
|
||||
i.USART_Init 0x0100162c Section 0 n32wb03x_usart.o(i.USART_Init)
|
||||
i.USART_SendData 0x010016e0 Section 0 n32wb03x_usart.o(i.USART_SendData)
|
||||
i.__aeabi_errno_addr 0x010016e8 Section 0 errno.o(i.__aeabi_errno_addr)
|
||||
i.__scatterload_copy 0x010016f0 Section 14 handlers.o(i.__scatterload_copy)
|
||||
i.__scatterload_null 0x010016fe Section 2 handlers.o(i.__scatterload_null)
|
||||
i.__scatterload_zeroinit 0x01001700 Section 14 handlers.o(i.__scatterload_zeroinit)
|
||||
i.__set_PRIMASK 0x0100170e Section 0 system_n32wb03x.o(i.__set_PRIMASK)
|
||||
__set_PRIMASK 0x0100170f Thumb Code 6 system_n32wb03x.o(i.__set_PRIMASK)
|
||||
i.__set_PRIMASK 0x01001714 Section 0 n32wb03x_qflash.o(i.__set_PRIMASK)
|
||||
__set_PRIMASK 0x01001715 Thumb Code 6 n32wb03x_qflash.o(i.__set_PRIMASK)
|
||||
i.app_ota_abort 0x0100171c Section 0 app_ota.o(i.app_ota_abort)
|
||||
i.app_ota_chan_idle 0x01001758 Section 0 app_ota.o(i.app_ota_chan_idle)
|
||||
i.app_ota_chan_rx 0x0100176c Section 0 app_ota.o(i.app_ota_chan_rx)
|
||||
i.app_ota_chan_rx_uart 0x010018ac Section 0 app_ota.o(i.app_ota_chan_rx_uart)
|
||||
i.app_ota_handle_frame 0x010018d0 Section 0 app_ota.o(i.app_ota_handle_frame)
|
||||
i.app_ota_reset_poll 0x0100194c Section 0 app_ota.o(i.app_ota_reset_poll)
|
||||
i.boot_cli_redraw 0x010019a8 Section 0 boot_cli.o(i.boot_cli_redraw)
|
||||
boot_cli_redraw 0x010019a9 Thumb Code 60 boot_cli.o(i.boot_cli_redraw)
|
||||
i.boot_cli_run 0x010019f4 Section 0 boot_cli.o(i.boot_cli_run)
|
||||
i.boot_cli_tab_complete 0x01001c14 Section 0 boot_cli.o(i.boot_cli_tab_complete)
|
||||
boot_cli_tab_complete 0x01001c15 Thumb Code 306 boot_cli.o(i.boot_cli_tab_complete)
|
||||
i.boot_delay_ms 0x01001d58 Section 0 boot_usart.o(i.boot_delay_ms)
|
||||
i.boot_millis 0x01001d70 Section 0 boot_usart.o(i.boot_millis)
|
||||
i.boot_usart_init 0x01001d98 Section 0 boot_usart.o(i.boot_usart_init)
|
||||
i.boot_usart_read 0x01001ea8 Section 0 boot_usart.o(i.boot_usart_read)
|
||||
i.boot_usart_rx_head 0x01001ee8 Section 0 boot_usart.o(i.boot_usart_rx_head)
|
||||
boot_usart_rx_head 0x01001ee9 Thumb Code 18 boot_usart.o(i.boot_usart_rx_head)
|
||||
i.boot_usart_write 0x01001f00 Section 0 boot_usart.o(i.boot_usart_write)
|
||||
i.bootset_commit 0x01001f30 Section 0 app_bootset.o(i.bootset_commit)
|
||||
bootset_commit 0x01001f31 Thumb Code 74 app_bootset.o(i.bootset_commit)
|
||||
i.bootset_crc 0x01001f84 Section 0 app_bootset.o(i.bootset_crc)
|
||||
bootset_crc 0x01001f85 Thumb Code 14 app_bootset.o(i.bootset_crc)
|
||||
i.bootset_ensure_qflash 0x01001f94 Section 0 app_bootset.o(i.bootset_ensure_qflash)
|
||||
bootset_ensure_qflash 0x01001f95 Thumb Code 22 app_bootset.o(i.bootset_ensure_qflash)
|
||||
i.bootset_print 0x01001fb0 Section 0 app_bootset.o(i.bootset_print)
|
||||
bootset_print 0x01001fb1 Thumb Code 98 app_bootset.o(i.bootset_print)
|
||||
i.bootset_valid 0x0100211c Section 0 app_bootset.o(i.bootset_valid)
|
||||
bootset_valid 0x0100211d Thumb Code 32 app_bootset.o(i.bootset_valid)
|
||||
i.caiic_crc32 0x01002140 Section 0 boot_crc32.o(i.caiic_crc32)
|
||||
i.cli_exec_line 0x01002184 Section 0 boot_cli.o(i.cli_exec_line)
|
||||
cli_exec_line 0x01002185 Thumb Code 162 boot_cli.o(i.cli_exec_line)
|
||||
i.cli_history_add 0x01002250 Section 0 boot_cli.o(i.cli_history_add)
|
||||
cli_history_add 0x01002251 Thumb Code 106 boot_cli.o(i.cli_history_add)
|
||||
i.cli_history_get 0x010022c8 Section 0 boot_cli.o(i.cli_history_get)
|
||||
cli_history_get 0x010022c9 Thumb Code 36 boot_cli.o(i.cli_history_get)
|
||||
i.cli_printf 0x010022f4 Section 0 boot_cli.o(i.cli_printf)
|
||||
i.cli_write 0x01002490 Section 0 boot_cli.o(i.cli_write)
|
||||
i.image_sane 0x010024a8 Section 0 main.o(i.image_sane)
|
||||
image_sane 0x010024a9 Thumb Code 44 main.o(i.image_sane)
|
||||
i.jump_to_app 0x010024dc Section 0 main.o(i.jump_to_app)
|
||||
jump_to_app 0x010024dd Thumb Code 30 main.o(i.jump_to_app)
|
||||
i.main 0x01002500 Section 0 main.o(i.main)
|
||||
i.ota_crc16 0x01002684 Section 0 app_ota.o(i.ota_crc16)
|
||||
ota_crc16 0x01002685 Thumb Code 68 app_ota.o(i.ota_crc16)
|
||||
i.ota_erase_up_to 0x010026d0 Section 0 app_ota.o(i.ota_erase_up_to)
|
||||
ota_erase_up_to 0x010026d1 Thumb Code 54 app_ota.o(i.ota_erase_up_to)
|
||||
i.ota_on_begin 0x01002710 Section 0 app_ota.o(i.ota_on_begin)
|
||||
ota_on_begin 0x01002711 Thumb Code 294 app_ota.o(i.ota_on_begin)
|
||||
i.ota_on_data 0x01002880 Section 0 app_ota.o(i.ota_on_data)
|
||||
ota_on_data 0x01002881 Thumb Code 396 app_ota.o(i.ota_on_data)
|
||||
i.ota_on_end 0x01002a28 Section 0 app_ota.o(i.ota_on_end)
|
||||
ota_on_end 0x01002a29 Thumb Code 326 app_ota.o(i.ota_on_end)
|
||||
i.ota_program 0x01002b98 Section 0 app_ota.o(i.ota_program)
|
||||
ota_program 0x01002b99 Thumb Code 46 app_ota.o(i.ota_program)
|
||||
i.ota_rd32 0x01002bd0 Section 0 app_ota.o(i.ota_rd32)
|
||||
ota_rd32 0x01002bd1 Thumb Code 24 app_ota.o(i.ota_rd32)
|
||||
i.ota_respond 0x01002be8 Section 0 app_ota.o(i.ota_respond)
|
||||
ota_respond 0x01002be9 Thumb Code 118 app_ota.o(i.ota_respond)
|
||||
i.ota_uart_sink 0x01002c64 Section 0 app_ota.o(i.ota_uart_sink)
|
||||
ota_uart_sink 0x01002c65 Thumb Code 22 app_ota.o(i.ota_uart_sink)
|
||||
i.ota_update_bootsetting 0x01002c80 Section 0 app_ota.o(i.ota_update_bootsetting)
|
||||
ota_update_bootsetting 0x01002c81 Thumb Code 174 app_ota.o(i.ota_update_bootsetting)
|
||||
i.parse_u32 0x01002d4c Section 0 app_bootset.o(i.parse_u32)
|
||||
parse_u32 0x01002d4d Thumb Code 46 app_bootset.o(i.parse_u32)
|
||||
i.pinset_parse 0x01002d7c Section 0 boot_cli.o(i.pinset_parse)
|
||||
pinset_parse 0x01002d7d Thumb Code 170 boot_cli.o(i.pinset_parse)
|
||||
i.puts_boot 0x01002e30 Section 0 main.o(i.puts_boot)
|
||||
puts_boot 0x01002e31 Thumb Code 24 main.o(i.puts_boot)
|
||||
i.read_flash_ID 0x01002e48 Section 0 system_n32wb03x.o(i.read_flash_ID)
|
||||
read_flash_ID 0x01002e49 Thumb Code 62 system_n32wb03x.o(i.read_flash_ID)
|
||||
i.str_pad 0x01002e8c Section 0 boot_cli.o(i.str_pad)
|
||||
str_pad 0x01002e8d Thumb Code 78 boot_cli.o(i.str_pad)
|
||||
i.u32_to_str 0x01002eda Section 0 boot_cli.o(i.u32_to_str)
|
||||
u32_to_str 0x01002edb Thumb Code 108 boot_cli.o(i.u32_to_str)
|
||||
.constdata 0x01002f46 Section 472 system_n32wb03x.o(.constdata)
|
||||
.constdata 0x01003120 Section 120 boot_cli.o(.constdata)
|
||||
s_cmds 0x01003120 Data 120 boot_cli.o(.constdata)
|
||||
.constdata 0x01003198 Section 12 n32wb03x_rcc.o(.constdata)
|
||||
s_ApbPresTable 0x01003198 Data 8 n32wb03x_rcc.o(.constdata)
|
||||
s_AhbPresTable 0x010031a0 Data 4 n32wb03x_rcc.o(.constdata)
|
||||
.constdata 0x010031a4 Section 804 n32wb03x_qflash.o(.constdata)
|
||||
.constdata 0x010034c8 Section 129 ctype_o.o(.constdata)
|
||||
.constdata 0x0100354c Section 4 ctype_o.o(.constdata)
|
||||
table 0x0100354c Data 4 ctype_o.o(.constdata)
|
||||
.conststring 0x01003550 Section 730 boot_cli.o(.conststring)
|
||||
.conststring 0x0100382c Section 145 app_bootset.o(.conststring)
|
||||
.data 0x20004000 Section 4 system_n32wb03x.o(.data)
|
||||
.data 0x20004004 Section 8 boot_usart.o(.data)
|
||||
s_rxTail 0x20004004 Data 2 boot_usart.o(.data)
|
||||
@ -758,54 +772,57 @@ Image Symbol Table
|
||||
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_CmdBsset 0x01000661 Thumb Code 348 app_bootset.o(i.AppBootset_CmdBsset)
|
||||
DMA_DeInit 0x01000cb9 Thumb Code 152 n32wb03x_dma.o(i.DMA_DeInit)
|
||||
DMA_EnableChannel 0x01000d59 Thumb Code 24 n32wb03x_dma.o(i.DMA_EnableChannel)
|
||||
DMA_GetCurrDataCounter 0x01000d75 Thumb Code 8 n32wb03x_dma.o(i.DMA_GetCurrDataCounter)
|
||||
DMA_Init 0x01000d7d Thumb Code 58 n32wb03x_dma.o(i.DMA_Init)
|
||||
DMA_RequestRemap 0x01000dbd Thumb Code 16 n32wb03x_dma.o(i.DMA_RequestRemap)
|
||||
GPIO_InitPeripheral 0x01000dcd Thumb Code 262 n32wb03x_gpio.o(i.GPIO_InitPeripheral)
|
||||
GPIO_InitStruct 0x01000ed5 Thumb Code 24 n32wb03x_gpio.o(i.GPIO_InitStruct)
|
||||
OTPTrim_Read 0x01000ef1 Thumb Code 192 system_n32wb03x.o(i.OTPTrim_Read)
|
||||
Qflash_Erase_Sector 0x01000fbd Thumb Code 54 n32wb03x_qflash.o(i.Qflash_Erase_Sector)
|
||||
Qflash_Init 0x01000ff9 Thumb Code 36 n32wb03x_qflash.o(i.Qflash_Init)
|
||||
Qflash_Write 0x01001031 Thumb Code 62 n32wb03x_qflash.o(i.Qflash_Write)
|
||||
RCC_EnableAHBPeriphClk 0x01001075 Thumb Code 28 n32wb03x_rcc.o(i.RCC_EnableAHBPeriphClk)
|
||||
RCC_EnableAPB2PeriphClk 0x01001095 Thumb Code 28 n32wb03x_rcc.o(i.RCC_EnableAPB2PeriphClk)
|
||||
RCC_GetClocksFreqValue 0x010010b5 Thumb Code 140 n32wb03x_rcc.o(i.RCC_GetClocksFreqValue)
|
||||
SystemInit 0x01001289 Thumb Code 250 system_n32wb03x.o(i.SystemInit)
|
||||
SystemTrimValueRead 0x010013a5 Thumb Code 20 system_n32wb03x.o(i.SystemTrimValueRead)
|
||||
USART_Enable 0x010013b9 Thumb Code 26 n32wb03x_usart.o(i.USART_Enable)
|
||||
USART_EnableDMA 0x010013d9 Thumb Code 20 n32wb03x_usart.o(i.USART_EnableDMA)
|
||||
USART_GetFlagStatus 0x010013ed Thumb Code 30 n32wb03x_usart.o(i.USART_GetFlagStatus)
|
||||
USART_Init 0x0100140d Thumb Code 162 n32wb03x_usart.o(i.USART_Init)
|
||||
USART_SendData 0x010014c1 Thumb Code 8 n32wb03x_usart.o(i.USART_SendData)
|
||||
__aeabi_errno_addr 0x010014c9 Thumb Code 4 errno.o(i.__aeabi_errno_addr)
|
||||
__rt_errno_addr 0x010014c9 Thumb Code 0 errno.o(i.__aeabi_errno_addr)
|
||||
__scatterload_copy 0x010014d1 Thumb Code 14 handlers.o(i.__scatterload_copy)
|
||||
__scatterload_null 0x010014df Thumb Code 2 handlers.o(i.__scatterload_null)
|
||||
__scatterload_zeroinit 0x010014e1 Thumb Code 14 handlers.o(i.__scatterload_zeroinit)
|
||||
app_ota_abort 0x010014fd Thumb Code 32 app_ota.o(i.app_ota_abort)
|
||||
app_ota_chan_idle 0x01001539 Thumb Code 12 app_ota.o(i.app_ota_chan_idle)
|
||||
app_ota_chan_rx 0x0100154d Thumb Code 298 app_ota.o(i.app_ota_chan_rx)
|
||||
app_ota_chan_rx_uart 0x0100168d Thumb Code 26 app_ota.o(i.app_ota_chan_rx_uart)
|
||||
app_ota_handle_frame 0x010016b1 Thumb Code 106 app_ota.o(i.app_ota_handle_frame)
|
||||
app_ota_reset_poll 0x0100172d Thumb Code 70 app_ota.o(i.app_ota_reset_poll)
|
||||
boot_cli_run 0x010017d5 Thumb Code 432 boot_cli.o(i.boot_cli_run)
|
||||
boot_delay_ms 0x01001b39 Thumb Code 24 boot_usart.o(i.boot_delay_ms)
|
||||
boot_millis 0x01001b51 Thumb Code 30 boot_usart.o(i.boot_millis)
|
||||
boot_usart_init 0x01001b79 Thumb Code 238 boot_usart.o(i.boot_usart_init)
|
||||
boot_usart_read 0x01001c89 Thumb Code 54 boot_usart.o(i.boot_usart_read)
|
||||
boot_usart_write 0x01001ce1 Thumb Code 42 boot_usart.o(i.boot_usart_write)
|
||||
caiic_crc32 0x01001f21 Thumb Code 62 boot_crc32.o(i.caiic_crc32)
|
||||
cli_printf 0x010020d5 Thumb Code 408 boot_cli.o(i.cli_printf)
|
||||
cli_write 0x01002271 Thumb Code 22 boot_cli.o(i.cli_write)
|
||||
main 0x010022e1 Thumb Code 194 main.o(i.main)
|
||||
TRIM_READ_CMD_CODE 0x01002c72 Data 320 system_n32wb03x.o(.constdata)
|
||||
CMD_RDID 0x01002db2 Data 152 system_n32wb03x.o(.constdata)
|
||||
const_qflash_cmd 0x01002ec4 Data 804 n32wb03x_qflash.o(.constdata)
|
||||
__ctype_table 0x010031e8 Data 129 ctype_o.o(.constdata)
|
||||
Region$$Table$$Base 0x010035a0 Number 0 anon$$obj.o(Region$$Table)
|
||||
Region$$Table$$Limit 0x010035c0 Number 0 anon$$obj.o(Region$$Table)
|
||||
DMA_DeInit 0x01000ebd Thumb Code 152 n32wb03x_dma.o(i.DMA_DeInit)
|
||||
DMA_EnableChannel 0x01000f5d Thumb Code 24 n32wb03x_dma.o(i.DMA_EnableChannel)
|
||||
DMA_GetCurrDataCounter 0x01000f79 Thumb Code 8 n32wb03x_dma.o(i.DMA_GetCurrDataCounter)
|
||||
DMA_Init 0x01000f81 Thumb Code 58 n32wb03x_dma.o(i.DMA_Init)
|
||||
DMA_RequestRemap 0x01000fc1 Thumb Code 16 n32wb03x_dma.o(i.DMA_RequestRemap)
|
||||
GPIO_InitPeripheral 0x01000fd1 Thumb Code 262 n32wb03x_gpio.o(i.GPIO_InitPeripheral)
|
||||
GPIO_InitStruct 0x010010d9 Thumb Code 24 n32wb03x_gpio.o(i.GPIO_InitStruct)
|
||||
GPIO_ReadInputDataBit 0x010010f5 Thumb Code 20 n32wb03x_gpio.o(i.GPIO_ReadInputDataBit)
|
||||
GPIO_ResetBits 0x01001109 Thumb Code 4 n32wb03x_gpio.o(i.GPIO_ResetBits)
|
||||
GPIO_SetBits 0x0100110d Thumb Code 4 n32wb03x_gpio.o(i.GPIO_SetBits)
|
||||
OTPTrim_Read 0x01001111 Thumb Code 192 system_n32wb03x.o(i.OTPTrim_Read)
|
||||
Qflash_Erase_Sector 0x010011dd Thumb Code 54 n32wb03x_qflash.o(i.Qflash_Erase_Sector)
|
||||
Qflash_Init 0x01001219 Thumb Code 36 n32wb03x_qflash.o(i.Qflash_Init)
|
||||
Qflash_Write 0x01001251 Thumb Code 62 n32wb03x_qflash.o(i.Qflash_Write)
|
||||
RCC_EnableAHBPeriphClk 0x01001295 Thumb Code 28 n32wb03x_rcc.o(i.RCC_EnableAHBPeriphClk)
|
||||
RCC_EnableAPB2PeriphClk 0x010012b5 Thumb Code 28 n32wb03x_rcc.o(i.RCC_EnableAPB2PeriphClk)
|
||||
RCC_GetClocksFreqValue 0x010012d5 Thumb Code 140 n32wb03x_rcc.o(i.RCC_GetClocksFreqValue)
|
||||
SystemInit 0x010014a9 Thumb Code 250 system_n32wb03x.o(i.SystemInit)
|
||||
SystemTrimValueRead 0x010015c5 Thumb Code 20 system_n32wb03x.o(i.SystemTrimValueRead)
|
||||
USART_Enable 0x010015d9 Thumb Code 26 n32wb03x_usart.o(i.USART_Enable)
|
||||
USART_EnableDMA 0x010015f9 Thumb Code 20 n32wb03x_usart.o(i.USART_EnableDMA)
|
||||
USART_GetFlagStatus 0x0100160d Thumb Code 30 n32wb03x_usart.o(i.USART_GetFlagStatus)
|
||||
USART_Init 0x0100162d Thumb Code 162 n32wb03x_usart.o(i.USART_Init)
|
||||
USART_SendData 0x010016e1 Thumb Code 8 n32wb03x_usart.o(i.USART_SendData)
|
||||
__aeabi_errno_addr 0x010016e9 Thumb Code 4 errno.o(i.__aeabi_errno_addr)
|
||||
__rt_errno_addr 0x010016e9 Thumb Code 0 errno.o(i.__aeabi_errno_addr)
|
||||
__scatterload_copy 0x010016f1 Thumb Code 14 handlers.o(i.__scatterload_copy)
|
||||
__scatterload_null 0x010016ff Thumb Code 2 handlers.o(i.__scatterload_null)
|
||||
__scatterload_zeroinit 0x01001701 Thumb Code 14 handlers.o(i.__scatterload_zeroinit)
|
||||
app_ota_abort 0x0100171d Thumb Code 32 app_ota.o(i.app_ota_abort)
|
||||
app_ota_chan_idle 0x01001759 Thumb Code 12 app_ota.o(i.app_ota_chan_idle)
|
||||
app_ota_chan_rx 0x0100176d Thumb Code 298 app_ota.o(i.app_ota_chan_rx)
|
||||
app_ota_chan_rx_uart 0x010018ad Thumb Code 26 app_ota.o(i.app_ota_chan_rx_uart)
|
||||
app_ota_handle_frame 0x010018d1 Thumb Code 106 app_ota.o(i.app_ota_handle_frame)
|
||||
app_ota_reset_poll 0x0100194d Thumb Code 70 app_ota.o(i.app_ota_reset_poll)
|
||||
boot_cli_run 0x010019f5 Thumb Code 432 boot_cli.o(i.boot_cli_run)
|
||||
boot_delay_ms 0x01001d59 Thumb Code 24 boot_usart.o(i.boot_delay_ms)
|
||||
boot_millis 0x01001d71 Thumb Code 30 boot_usart.o(i.boot_millis)
|
||||
boot_usart_init 0x01001d99 Thumb Code 238 boot_usart.o(i.boot_usart_init)
|
||||
boot_usart_read 0x01001ea9 Thumb Code 54 boot_usart.o(i.boot_usart_read)
|
||||
boot_usart_write 0x01001f01 Thumb Code 42 boot_usart.o(i.boot_usart_write)
|
||||
caiic_crc32 0x01002141 Thumb Code 62 boot_crc32.o(i.caiic_crc32)
|
||||
cli_printf 0x010022f5 Thumb Code 408 boot_cli.o(i.cli_printf)
|
||||
cli_write 0x01002491 Thumb Code 22 boot_cli.o(i.cli_write)
|
||||
main 0x01002501 Thumb Code 194 main.o(i.main)
|
||||
TRIM_READ_CMD_CODE 0x01002f46 Data 320 system_n32wb03x.o(.constdata)
|
||||
CMD_RDID 0x01003086 Data 152 system_n32wb03x.o(.constdata)
|
||||
const_qflash_cmd 0x010031a4 Data 804 n32wb03x_qflash.o(.constdata)
|
||||
__ctype_table 0x010034c8 Data 129 ctype_o.o(.constdata)
|
||||
Region$$Table$$Base 0x010038c0 Number 0 anon$$obj.o(Region$$Table)
|
||||
Region$$Table$$Limit 0x010038e0 Number 0 anon$$obj.o(Region$$Table)
|
||||
SystemCoreClock 0x20004000 Data 4 system_n32wb03x.o(.data)
|
||||
CMD_FLASH_SE 0x20004050 Data 4 n32wb03x_qflash.o(.data)
|
||||
CMD_FLASH_WRITE 0x20004054 Data 4 n32wb03x_qflash.o(.data)
|
||||
@ -821,164 +838,169 @@ Memory Map of the image
|
||||
|
||||
Image Entry point : 0x010000c1
|
||||
|
||||
Load Region LR_IROM1 (Base: 0x01000000, Size: 0x00003620, Max: 0x00004000, ABSOLUTE)
|
||||
Load Region LR_IROM1 (Base: 0x01000000, Size: 0x00003940, Max: 0x00004000, ABSOLUTE)
|
||||
|
||||
Execution Region ER_IROM1 (Exec base: 0x01000000, Load base: 0x01000000, Size: 0x000035c0, Max: 0x00004000, ABSOLUTE)
|
||||
Execution Region ER_IROM1 (Exec base: 0x01000000, Load base: 0x01000000, Size: 0x000038e0, Max: 0x00004000, ABSOLUTE)
|
||||
|
||||
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
|
||||
|
||||
0x01000000 0x01000000 0x000000c0 Data RO 3 RESET startup_n32wb03x.o
|
||||
0x010000c0 0x010000c0 0x00000000 Code RO 1230 * .ARM.Collect$$$$00000000 mc_p.l(entry.o)
|
||||
0x010000c0 0x010000c0 0x00000004 Code RO 1255 .ARM.Collect$$$$00000001 mc_p.l(entry2.o)
|
||||
0x010000c4 0x010000c4 0x00000004 Code RO 1258 .ARM.Collect$$$$00000004 mc_p.l(entry5.o)
|
||||
0x010000c8 0x010000c8 0x00000000 Code RO 1260 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o)
|
||||
0x010000c8 0x010000c8 0x00000000 Code RO 1262 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o)
|
||||
0x010000c8 0x010000c8 0x00000008 Code RO 1263 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o)
|
||||
0x010000d0 0x010000d0 0x00000000 Code RO 1265 .ARM.Collect$$$$0000000D mc_p.l(entry10a.o)
|
||||
0x010000d0 0x010000d0 0x00000000 Code RO 1267 .ARM.Collect$$$$0000000F mc_p.l(entry11a.o)
|
||||
0x010000d0 0x010000d0 0x00000004 Code RO 1256 .ARM.Collect$$$$00002712 mc_p.l(entry2.o)
|
||||
0x010000c0 0x010000c0 0x00000000 Code RO 1240 * .ARM.Collect$$$$00000000 mc_p.l(entry.o)
|
||||
0x010000c0 0x010000c0 0x00000004 Code RO 1265 .ARM.Collect$$$$00000001 mc_p.l(entry2.o)
|
||||
0x010000c4 0x010000c4 0x00000004 Code RO 1268 .ARM.Collect$$$$00000004 mc_p.l(entry5.o)
|
||||
0x010000c8 0x010000c8 0x00000000 Code RO 1270 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o)
|
||||
0x010000c8 0x010000c8 0x00000000 Code RO 1272 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o)
|
||||
0x010000c8 0x010000c8 0x00000008 Code RO 1273 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o)
|
||||
0x010000d0 0x010000d0 0x00000000 Code RO 1275 .ARM.Collect$$$$0000000D mc_p.l(entry10a.o)
|
||||
0x010000d0 0x010000d0 0x00000000 Code RO 1277 .ARM.Collect$$$$0000000F mc_p.l(entry11a.o)
|
||||
0x010000d0 0x010000d0 0x00000004 Code RO 1266 .ARM.Collect$$$$00002712 mc_p.l(entry2.o)
|
||||
0x010000d4 0x010000d4 0x0000000e Code RO 10 .emb_text system_n32wb03x.o
|
||||
0x010000e2 0x010000e2 0x00000002 PAD
|
||||
0x010000e4 0x010000e4 0x0000001c Code RO 4 .text startup_n32wb03x.o
|
||||
0x01000100 0x01000100 0x0000002c Code RO 1233 .text mc_p.l(uidiv.o)
|
||||
0x0100012c 0x0100012c 0x00000024 Code RO 1235 .text mc_p.l(memcpya.o)
|
||||
0x01000150 0x01000150 0x00000024 Code RO 1237 .text mc_p.l(memseta.o)
|
||||
0x01000174 0x01000174 0x0000000e Code RO 1239 .text mc_p.l(strlen.o)
|
||||
0x01000182 0x01000182 0x0000001c Code RO 1241 .text mc_p.l(strcmp.o)
|
||||
0x0100019e 0x0100019e 0x00000014 Code RO 1243 .text mc_p.l(memchr.o)
|
||||
0x010001b2 0x010001b2 0x0000001a Code RO 1245 .text mc_p.l(memcmp.o)
|
||||
0x010001cc 0x010001cc 0x00000012 Code RO 1247 .text mc_p.l(strcpy.o)
|
||||
0x010001de 0x010001de 0x0000001e Code RO 1249 .text mc_p.l(strncmp.o)
|
||||
0x010001fc 0x010001fc 0x00000076 Code RO 1253 .text mc_p.l(strtoul.o)
|
||||
0x01000100 0x01000100 0x0000002c Code RO 1243 .text mc_p.l(uidiv.o)
|
||||
0x0100012c 0x0100012c 0x00000024 Code RO 1245 .text mc_p.l(memcpya.o)
|
||||
0x01000150 0x01000150 0x00000024 Code RO 1247 .text mc_p.l(memseta.o)
|
||||
0x01000174 0x01000174 0x0000000e Code RO 1249 .text mc_p.l(strlen.o)
|
||||
0x01000182 0x01000182 0x0000001c Code RO 1251 .text mc_p.l(strcmp.o)
|
||||
0x0100019e 0x0100019e 0x00000014 Code RO 1253 .text mc_p.l(memchr.o)
|
||||
0x010001b2 0x010001b2 0x0000001a Code RO 1255 .text mc_p.l(memcmp.o)
|
||||
0x010001cc 0x010001cc 0x00000012 Code RO 1257 .text mc_p.l(strcpy.o)
|
||||
0x010001de 0x010001de 0x0000001e Code RO 1259 .text mc_p.l(strncmp.o)
|
||||
0x010001fc 0x010001fc 0x00000076 Code RO 1263 .text mc_p.l(strtoul.o)
|
||||
0x01000272 0x01000272 0x00000002 PAD
|
||||
0x01000274 0x01000274 0x00000008 Code RO 1269 .text mc_p.l(ctype_o.o)
|
||||
0x0100027c 0x0100027c 0x000000a6 Code RO 1304 .text mc_p.l(_strtoul.o)
|
||||
0x01000274 0x01000274 0x00000008 Code RO 1279 .text mc_p.l(ctype_o.o)
|
||||
0x0100027c 0x0100027c 0x000000a6 Code RO 1314 .text mc_p.l(_strtoul.o)
|
||||
0x01000322 0x01000322 0x00000002 PAD
|
||||
0x01000324 0x01000324 0x00000024 Code RO 1306 .text mc_p.l(init.o)
|
||||
0x01000348 0x01000348 0x0000001e Code RO 1308 .text mc_p.l(_chval.o)
|
||||
0x01000324 0x01000324 0x00000024 Code RO 1316 .text mc_p.l(init.o)
|
||||
0x01000348 0x01000348 0x0000001e Code RO 1318 .text mc_p.l(_chval.o)
|
||||
0x01000366 0x01000366 0x00000002 PAD
|
||||
0x01000368 0x01000368 0x000002d8 Code RO 515 i.AppBootset_CmdAppswitch app_bootset.o
|
||||
0x01000640 0x01000640 0x00000020 Code RO 516 i.AppBootset_CmdBsdump app_bootset.o
|
||||
0x01000660 0x01000660 0x000002f8 Code RO 517 i.AppBootset_CmdBsset app_bootset.o
|
||||
0x01000368 0x01000368 0x000002d8 Code RO 525 i.AppBootset_CmdAppswitch app_bootset.o
|
||||
0x01000640 0x01000640 0x00000020 Code RO 526 i.AppBootset_CmdBsdump app_bootset.o
|
||||
0x01000660 0x01000660 0x000002f8 Code RO 527 i.AppBootset_CmdBsset app_bootset.o
|
||||
0x01000958 0x01000958 0x000000e0 Code RO 290 i.CmdDevInfo boot_cli.o
|
||||
0x01000a38 0x01000a38 0x00000104 Code RO 291 i.CmdHelp boot_cli.o
|
||||
0x01000b3c 0x01000b3c 0x0000001c Code RO 292 i.CmdOta boot_cli.o
|
||||
0x01000b58 0x01000b58 0x0000003c Code RO 293 i.CmdReset boot_cli.o
|
||||
0x01000b94 0x01000b94 0x000000b0 Code RO 294 i.CmdUartInfo boot_cli.o
|
||||
0x01000c44 0x01000c44 0x00000074 Code RO 295 i.CmdVersion boot_cli.o
|
||||
0x01000cb8 0x01000cb8 0x000000a0 Code RO 1108 i.DMA_DeInit n32wb03x_dma.o
|
||||
0x01000d58 0x01000d58 0x0000001c Code RO 1109 i.DMA_EnableChannel n32wb03x_dma.o
|
||||
0x01000d74 0x01000d74 0x00000008 Code RO 1110 i.DMA_GetCurrDataCounter n32wb03x_dma.o
|
||||
0x01000d7c 0x01000d7c 0x00000040 Code RO 1113 i.DMA_Init n32wb03x_dma.o
|
||||
0x01000dbc 0x01000dbc 0x00000010 Code RO 1114 i.DMA_RequestRemap n32wb03x_dma.o
|
||||
0x01000dcc 0x01000dcc 0x00000106 Code RO 820 i.GPIO_InitPeripheral n32wb03x_gpio.o
|
||||
0x01000ed2 0x01000ed2 0x00000002 PAD
|
||||
0x01000ed4 0x01000ed4 0x0000001c Code RO 821 i.GPIO_InitStruct n32wb03x_gpio.o
|
||||
0x01000ef0 0x01000ef0 0x000000cc Code RO 11 i.OTPTrim_Read system_n32wb03x.o
|
||||
0x01000fbc 0x01000fbc 0x0000003c Code RO 1187 i.Qflash_Erase_Sector n32wb03x_qflash.o
|
||||
0x01000ff8 0x01000ff8 0x00000038 Code RO 1188 i.Qflash_Init n32wb03x_qflash.o
|
||||
0x01001030 0x01001030 0x00000044 Code RO 1190 i.Qflash_Write n32wb03x_qflash.o
|
||||
0x01001074 0x01001074 0x00000020 Code RO 596 i.RCC_EnableAHBPeriphClk n32wb03x_rcc.o
|
||||
0x01001094 0x01001094 0x00000020 Code RO 600 i.RCC_EnableAPB2PeriphClk n32wb03x_rcc.o
|
||||
0x010010b4 0x010010b4 0x000000a4 Code RO 608 i.RCC_GetClocksFreqValue n32wb03x_rcc.o
|
||||
0x01001158 0x01001158 0x00000130 Code RO 12 i.RCC_HsiCalib system_n32wb03x.o
|
||||
0x01001288 0x01001288 0x0000011c Code RO 16 i.SystemInit system_n32wb03x.o
|
||||
0x010013a4 0x010013a4 0x00000014 Code RO 18 i.SystemTrimValueRead system_n32wb03x.o
|
||||
0x010013b8 0x010013b8 0x00000020 Code RO 942 i.USART_Enable n32wb03x_usart.o
|
||||
0x010013d8 0x010013d8 0x00000014 Code RO 943 i.USART_EnableDMA n32wb03x_usart.o
|
||||
0x010013ec 0x010013ec 0x0000001e Code RO 949 i.USART_GetFlagStatus n32wb03x_usart.o
|
||||
0x0100140a 0x0100140a 0x00000002 PAD
|
||||
0x0100140c 0x0100140c 0x000000b4 Code RO 951 i.USART_Init n32wb03x_usart.o
|
||||
0x010014c0 0x010014c0 0x00000008 Code RO 954 i.USART_SendData n32wb03x_usart.o
|
||||
0x010014c8 0x010014c8 0x00000008 Code RO 1297 i.__aeabi_errno_addr mc_p.l(errno.o)
|
||||
0x010014d0 0x010014d0 0x0000000e Code RO 1312 i.__scatterload_copy mc_p.l(handlers.o)
|
||||
0x010014de 0x010014de 0x00000002 Code RO 1313 i.__scatterload_null mc_p.l(handlers.o)
|
||||
0x010014e0 0x010014e0 0x0000000e Code RO 1314 i.__scatterload_zeroinit mc_p.l(handlers.o)
|
||||
0x010014ee 0x010014ee 0x00000006 Code RO 19 i.__set_PRIMASK system_n32wb03x.o
|
||||
0x010014f4 0x010014f4 0x00000006 Code RO 1191 i.__set_PRIMASK n32wb03x_qflash.o
|
||||
0x010014fa 0x010014fa 0x00000002 PAD
|
||||
0x010014fc 0x010014fc 0x0000003c Code RO 406 i.app_ota_abort app_ota.o
|
||||
0x01001538 0x01001538 0x00000014 Code RO 407 i.app_ota_chan_idle app_ota.o
|
||||
0x0100154c 0x0100154c 0x00000140 Code RO 408 i.app_ota_chan_rx app_ota.o
|
||||
0x0100168c 0x0100168c 0x00000024 Code RO 409 i.app_ota_chan_rx_uart app_ota.o
|
||||
0x010016b0 0x010016b0 0x0000007c Code RO 411 i.app_ota_handle_frame app_ota.o
|
||||
0x0100172c 0x0100172c 0x0000005c Code RO 412 i.app_ota_reset_poll app_ota.o
|
||||
0x01001788 0x01001788 0x0000004c Code RO 296 i.boot_cli_redraw boot_cli.o
|
||||
0x010017d4 0x010017d4 0x00000220 Code RO 297 i.boot_cli_run boot_cli.o
|
||||
0x010019f4 0x010019f4 0x00000144 Code RO 298 i.boot_cli_tab_complete boot_cli.o
|
||||
0x01001b38 0x01001b38 0x00000018 Code RO 239 i.boot_delay_ms boot_usart.o
|
||||
0x01001b50 0x01001b50 0x00000028 Code RO 240 i.boot_millis boot_usart.o
|
||||
0x01001b78 0x01001b78 0x00000110 Code RO 241 i.boot_usart_init boot_usart.o
|
||||
0x01001c88 0x01001c88 0x00000040 Code RO 242 i.boot_usart_read boot_usart.o
|
||||
0x01001cc8 0x01001cc8 0x00000018 Code RO 243 i.boot_usart_rx_head boot_usart.o
|
||||
0x01001ce0 0x01001ce0 0x00000030 Code RO 244 i.boot_usart_write boot_usart.o
|
||||
0x01001d10 0x01001d10 0x00000054 Code RO 518 i.bootset_commit app_bootset.o
|
||||
0x01001d64 0x01001d64 0x0000000e Code RO 519 i.bootset_crc app_bootset.o
|
||||
0x01001d72 0x01001d72 0x00000002 PAD
|
||||
0x01001d74 0x01001d74 0x0000001c Code RO 520 i.bootset_ensure_qflash app_bootset.o
|
||||
0x01001d90 0x01001d90 0x0000016c Code RO 521 i.bootset_print app_bootset.o
|
||||
0x01001efc 0x01001efc 0x00000024 Code RO 522 i.bootset_valid app_bootset.o
|
||||
0x01001f20 0x01001f20 0x00000044 Code RO 226 i.caiic_crc32 boot_crc32.o
|
||||
0x01001f64 0x01001f64 0x000000cc Code RO 299 i.cli_exec_line boot_cli.o
|
||||
0x01002030 0x01002030 0x00000078 Code RO 300 i.cli_history_add boot_cli.o
|
||||
0x010020a8 0x010020a8 0x0000002c Code RO 301 i.cli_history_get boot_cli.o
|
||||
0x010020d4 0x010020d4 0x0000019c Code RO 302 i.cli_printf boot_cli.o
|
||||
0x01002270 0x01002270 0x00000016 Code RO 303 i.cli_write boot_cli.o
|
||||
0x01002286 0x01002286 0x00000002 PAD
|
||||
0x01002288 0x01002288 0x00000034 Code RO 174 i.image_sane main.o
|
||||
0x010022bc 0x010022bc 0x00000024 Code RO 175 i.jump_to_app main.o
|
||||
0x010022e0 0x010022e0 0x00000184 Code RO 176 i.main main.o
|
||||
0x01002464 0x01002464 0x0000004c Code RO 413 i.ota_crc16 app_ota.o
|
||||
0x010024b0 0x010024b0 0x00000040 Code RO 414 i.ota_erase_up_to app_ota.o
|
||||
0x010024f0 0x010024f0 0x00000170 Code RO 415 i.ota_on_begin app_ota.o
|
||||
0x01002660 0x01002660 0x000001a8 Code RO 416 i.ota_on_data app_ota.o
|
||||
0x01002808 0x01002808 0x00000170 Code RO 417 i.ota_on_end app_ota.o
|
||||
0x01002978 0x01002978 0x00000038 Code RO 418 i.ota_program app_ota.o
|
||||
0x010029b0 0x010029b0 0x00000018 Code RO 419 i.ota_rd32 app_ota.o
|
||||
0x010029c8 0x010029c8 0x0000007c Code RO 420 i.ota_respond app_ota.o
|
||||
0x01002a44 0x01002a44 0x0000001c Code RO 421 i.ota_uart_sink app_ota.o
|
||||
0x01002a60 0x01002a60 0x000000cc Code RO 422 i.ota_update_bootsetting app_ota.o
|
||||
0x01002b2c 0x01002b2c 0x0000002e Code RO 523 i.parse_u32 app_bootset.o
|
||||
0x01002b5a 0x01002b5a 0x00000018 Code RO 177 i.puts_boot main.o
|
||||
0x01002b72 0x01002b72 0x00000002 PAD
|
||||
0x01002b74 0x01002b74 0x00000044 Code RO 20 i.read_flash_ID system_n32wb03x.o
|
||||
0x01002bb8 0x01002bb8 0x0000004e Code RO 304 i.str_pad boot_cli.o
|
||||
0x01002c06 0x01002c06 0x0000006c Code RO 305 i.u32_to_str boot_cli.o
|
||||
0x01002c72 0x01002c72 0x000001d8 Data RO 23 .constdata system_n32wb03x.o
|
||||
0x01002e4a 0x01002e4a 0x00000002 PAD
|
||||
0x01002e4c 0x01002e4c 0x0000006c Data RO 307 .constdata boot_cli.o
|
||||
0x01002eb8 0x01002eb8 0x0000000c Data RO 616 .constdata n32wb03x_rcc.o
|
||||
0x01002ec4 0x01002ec4 0x00000324 Data RO 1193 .constdata n32wb03x_qflash.o
|
||||
0x010031e8 0x010031e8 0x00000081 Data RO 1270 .constdata mc_p.l(ctype_o.o)
|
||||
0x01003269 0x01003269 0x00000003 PAD
|
||||
0x0100326c 0x0100326c 0x00000004 Data RO 1271 .constdata mc_p.l(ctype_o.o)
|
||||
0x01003270 0x01003270 0x0000029a Data RO 308 .conststring boot_cli.o
|
||||
0x0100350a 0x0100350a 0x00000002 PAD
|
||||
0x0100350c 0x0100350c 0x00000091 Data RO 524 .conststring app_bootset.o
|
||||
0x0100359d 0x0100359d 0x00000003 PAD
|
||||
0x010035a0 0x010035a0 0x00000020 Data RO 1310 Region$$Table anon$$obj.o
|
||||
0x01000b58 0x01000b58 0x00000204 Code RO 293 i.CmdPinSet boot_cli.o
|
||||
0x01000d5c 0x01000d5c 0x0000003c Code RO 294 i.CmdReset boot_cli.o
|
||||
0x01000d98 0x01000d98 0x000000b0 Code RO 295 i.CmdUartInfo boot_cli.o
|
||||
0x01000e48 0x01000e48 0x00000074 Code RO 296 i.CmdVersion boot_cli.o
|
||||
0x01000ebc 0x01000ebc 0x000000a0 Code RO 1118 i.DMA_DeInit n32wb03x_dma.o
|
||||
0x01000f5c 0x01000f5c 0x0000001c Code RO 1119 i.DMA_EnableChannel n32wb03x_dma.o
|
||||
0x01000f78 0x01000f78 0x00000008 Code RO 1120 i.DMA_GetCurrDataCounter n32wb03x_dma.o
|
||||
0x01000f80 0x01000f80 0x00000040 Code RO 1123 i.DMA_Init n32wb03x_dma.o
|
||||
0x01000fc0 0x01000fc0 0x00000010 Code RO 1124 i.DMA_RequestRemap n32wb03x_dma.o
|
||||
0x01000fd0 0x01000fd0 0x00000106 Code RO 830 i.GPIO_InitPeripheral n32wb03x_gpio.o
|
||||
0x010010d6 0x010010d6 0x00000002 PAD
|
||||
0x010010d8 0x010010d8 0x0000001c Code RO 831 i.GPIO_InitStruct n32wb03x_gpio.o
|
||||
0x010010f4 0x010010f4 0x00000014 Code RO 833 i.GPIO_ReadInputDataBit n32wb03x_gpio.o
|
||||
0x01001108 0x01001108 0x00000004 Code RO 836 i.GPIO_ResetBits n32wb03x_gpio.o
|
||||
0x0100110c 0x0100110c 0x00000004 Code RO 837 i.GPIO_SetBits n32wb03x_gpio.o
|
||||
0x01001110 0x01001110 0x000000cc Code RO 11 i.OTPTrim_Read system_n32wb03x.o
|
||||
0x010011dc 0x010011dc 0x0000003c Code RO 1197 i.Qflash_Erase_Sector n32wb03x_qflash.o
|
||||
0x01001218 0x01001218 0x00000038 Code RO 1198 i.Qflash_Init n32wb03x_qflash.o
|
||||
0x01001250 0x01001250 0x00000044 Code RO 1200 i.Qflash_Write n32wb03x_qflash.o
|
||||
0x01001294 0x01001294 0x00000020 Code RO 606 i.RCC_EnableAHBPeriphClk n32wb03x_rcc.o
|
||||
0x010012b4 0x010012b4 0x00000020 Code RO 610 i.RCC_EnableAPB2PeriphClk n32wb03x_rcc.o
|
||||
0x010012d4 0x010012d4 0x000000a4 Code RO 618 i.RCC_GetClocksFreqValue n32wb03x_rcc.o
|
||||
0x01001378 0x01001378 0x00000130 Code RO 12 i.RCC_HsiCalib system_n32wb03x.o
|
||||
0x010014a8 0x010014a8 0x0000011c Code RO 16 i.SystemInit system_n32wb03x.o
|
||||
0x010015c4 0x010015c4 0x00000014 Code RO 18 i.SystemTrimValueRead system_n32wb03x.o
|
||||
0x010015d8 0x010015d8 0x00000020 Code RO 952 i.USART_Enable n32wb03x_usart.o
|
||||
0x010015f8 0x010015f8 0x00000014 Code RO 953 i.USART_EnableDMA n32wb03x_usart.o
|
||||
0x0100160c 0x0100160c 0x0000001e Code RO 959 i.USART_GetFlagStatus n32wb03x_usart.o
|
||||
0x0100162a 0x0100162a 0x00000002 PAD
|
||||
0x0100162c 0x0100162c 0x000000b4 Code RO 961 i.USART_Init n32wb03x_usart.o
|
||||
0x010016e0 0x010016e0 0x00000008 Code RO 964 i.USART_SendData n32wb03x_usart.o
|
||||
0x010016e8 0x010016e8 0x00000008 Code RO 1307 i.__aeabi_errno_addr mc_p.l(errno.o)
|
||||
0x010016f0 0x010016f0 0x0000000e Code RO 1322 i.__scatterload_copy mc_p.l(handlers.o)
|
||||
0x010016fe 0x010016fe 0x00000002 Code RO 1323 i.__scatterload_null mc_p.l(handlers.o)
|
||||
0x01001700 0x01001700 0x0000000e Code RO 1324 i.__scatterload_zeroinit mc_p.l(handlers.o)
|
||||
0x0100170e 0x0100170e 0x00000006 Code RO 19 i.__set_PRIMASK system_n32wb03x.o
|
||||
0x01001714 0x01001714 0x00000006 Code RO 1201 i.__set_PRIMASK n32wb03x_qflash.o
|
||||
0x0100171a 0x0100171a 0x00000002 PAD
|
||||
0x0100171c 0x0100171c 0x0000003c Code RO 416 i.app_ota_abort app_ota.o
|
||||
0x01001758 0x01001758 0x00000014 Code RO 417 i.app_ota_chan_idle app_ota.o
|
||||
0x0100176c 0x0100176c 0x00000140 Code RO 418 i.app_ota_chan_rx app_ota.o
|
||||
0x010018ac 0x010018ac 0x00000024 Code RO 419 i.app_ota_chan_rx_uart app_ota.o
|
||||
0x010018d0 0x010018d0 0x0000007c Code RO 421 i.app_ota_handle_frame app_ota.o
|
||||
0x0100194c 0x0100194c 0x0000005c Code RO 422 i.app_ota_reset_poll app_ota.o
|
||||
0x010019a8 0x010019a8 0x0000004c Code RO 297 i.boot_cli_redraw boot_cli.o
|
||||
0x010019f4 0x010019f4 0x00000220 Code RO 298 i.boot_cli_run boot_cli.o
|
||||
0x01001c14 0x01001c14 0x00000144 Code RO 299 i.boot_cli_tab_complete boot_cli.o
|
||||
0x01001d58 0x01001d58 0x00000018 Code RO 239 i.boot_delay_ms boot_usart.o
|
||||
0x01001d70 0x01001d70 0x00000028 Code RO 240 i.boot_millis boot_usart.o
|
||||
0x01001d98 0x01001d98 0x00000110 Code RO 241 i.boot_usart_init boot_usart.o
|
||||
0x01001ea8 0x01001ea8 0x00000040 Code RO 242 i.boot_usart_read boot_usart.o
|
||||
0x01001ee8 0x01001ee8 0x00000018 Code RO 243 i.boot_usart_rx_head boot_usart.o
|
||||
0x01001f00 0x01001f00 0x00000030 Code RO 244 i.boot_usart_write boot_usart.o
|
||||
0x01001f30 0x01001f30 0x00000054 Code RO 528 i.bootset_commit app_bootset.o
|
||||
0x01001f84 0x01001f84 0x0000000e Code RO 529 i.bootset_crc app_bootset.o
|
||||
0x01001f92 0x01001f92 0x00000002 PAD
|
||||
0x01001f94 0x01001f94 0x0000001c Code RO 530 i.bootset_ensure_qflash app_bootset.o
|
||||
0x01001fb0 0x01001fb0 0x0000016c Code RO 531 i.bootset_print app_bootset.o
|
||||
0x0100211c 0x0100211c 0x00000024 Code RO 532 i.bootset_valid app_bootset.o
|
||||
0x01002140 0x01002140 0x00000044 Code RO 226 i.caiic_crc32 boot_crc32.o
|
||||
0x01002184 0x01002184 0x000000cc Code RO 300 i.cli_exec_line boot_cli.o
|
||||
0x01002250 0x01002250 0x00000078 Code RO 301 i.cli_history_add boot_cli.o
|
||||
0x010022c8 0x010022c8 0x0000002c Code RO 302 i.cli_history_get boot_cli.o
|
||||
0x010022f4 0x010022f4 0x0000019c Code RO 303 i.cli_printf boot_cli.o
|
||||
0x01002490 0x01002490 0x00000016 Code RO 304 i.cli_write boot_cli.o
|
||||
0x010024a6 0x010024a6 0x00000002 PAD
|
||||
0x010024a8 0x010024a8 0x00000034 Code RO 174 i.image_sane main.o
|
||||
0x010024dc 0x010024dc 0x00000024 Code RO 175 i.jump_to_app main.o
|
||||
0x01002500 0x01002500 0x00000184 Code RO 176 i.main main.o
|
||||
0x01002684 0x01002684 0x0000004c Code RO 423 i.ota_crc16 app_ota.o
|
||||
0x010026d0 0x010026d0 0x00000040 Code RO 424 i.ota_erase_up_to app_ota.o
|
||||
0x01002710 0x01002710 0x00000170 Code RO 425 i.ota_on_begin app_ota.o
|
||||
0x01002880 0x01002880 0x000001a8 Code RO 426 i.ota_on_data app_ota.o
|
||||
0x01002a28 0x01002a28 0x00000170 Code RO 427 i.ota_on_end app_ota.o
|
||||
0x01002b98 0x01002b98 0x00000038 Code RO 428 i.ota_program app_ota.o
|
||||
0x01002bd0 0x01002bd0 0x00000018 Code RO 429 i.ota_rd32 app_ota.o
|
||||
0x01002be8 0x01002be8 0x0000007c Code RO 430 i.ota_respond app_ota.o
|
||||
0x01002c64 0x01002c64 0x0000001c Code RO 431 i.ota_uart_sink app_ota.o
|
||||
0x01002c80 0x01002c80 0x000000cc Code RO 432 i.ota_update_bootsetting app_ota.o
|
||||
0x01002d4c 0x01002d4c 0x0000002e Code RO 533 i.parse_u32 app_bootset.o
|
||||
0x01002d7a 0x01002d7a 0x00000002 PAD
|
||||
0x01002d7c 0x01002d7c 0x000000b4 Code RO 305 i.pinset_parse boot_cli.o
|
||||
0x01002e30 0x01002e30 0x00000018 Code RO 177 i.puts_boot main.o
|
||||
0x01002e48 0x01002e48 0x00000044 Code RO 20 i.read_flash_ID system_n32wb03x.o
|
||||
0x01002e8c 0x01002e8c 0x0000004e Code RO 306 i.str_pad boot_cli.o
|
||||
0x01002eda 0x01002eda 0x0000006c Code RO 307 i.u32_to_str boot_cli.o
|
||||
0x01002f46 0x01002f46 0x000001d8 Data RO 23 .constdata system_n32wb03x.o
|
||||
0x0100311e 0x0100311e 0x00000002 PAD
|
||||
0x01003120 0x01003120 0x00000078 Data RO 309 .constdata boot_cli.o
|
||||
0x01003198 0x01003198 0x0000000c Data RO 626 .constdata n32wb03x_rcc.o
|
||||
0x010031a4 0x010031a4 0x00000324 Data RO 1203 .constdata n32wb03x_qflash.o
|
||||
0x010034c8 0x010034c8 0x00000081 Data RO 1280 .constdata mc_p.l(ctype_o.o)
|
||||
0x01003549 0x01003549 0x00000003 PAD
|
||||
0x0100354c 0x0100354c 0x00000004 Data RO 1281 .constdata mc_p.l(ctype_o.o)
|
||||
0x01003550 0x01003550 0x000002da Data RO 310 .conststring boot_cli.o
|
||||
0x0100382a 0x0100382a 0x00000002 PAD
|
||||
0x0100382c 0x0100382c 0x00000091 Data RO 534 .conststring app_bootset.o
|
||||
0x010038bd 0x010038bd 0x00000003 PAD
|
||||
0x010038c0 0x010038c0 0x00000020 Data RO 1320 Region$$Table anon$$obj.o
|
||||
|
||||
|
||||
Execution Region RW_IRAM1 (Exec base: 0x20004000, Load base: 0x010035c0, Size: 0x00001cd8, Max: 0x0000c000, ABSOLUTE)
|
||||
Execution Region RW_IRAM1 (Exec base: 0x20004000, Load base: 0x010038e0, Size: 0x00001cd8, Max: 0x0000c000, ABSOLUTE)
|
||||
|
||||
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
|
||||
|
||||
0x20004000 0x010035c0 0x00000004 Data RW 24 .data system_n32wb03x.o
|
||||
0x20004004 0x010035c4 0x00000008 Data RW 246 .data boot_usart.o
|
||||
0x2000400c 0x010035cc 0x00000003 Data RW 309 .data boot_cli.o
|
||||
0x2000400f 0x010035cf 0x00000001 PAD
|
||||
0x20004010 0x010035d0 0x0000003d Data RW 424 .data app_ota.o
|
||||
0x2000404d 0x0100360d 0x00000001 Data RW 525 .data app_bootset.o
|
||||
0x2000404e 0x0100360e 0x00000002 PAD
|
||||
0x20004050 0x01003610 0x0000000c Data RW 1194 .data n32wb03x_qflash.o
|
||||
0x2000405c 0x0100361c 0x00000004 Data RW 1300 .data mc_p.l(errno.o)
|
||||
0x20004000 0x010038e0 0x00000004 Data RW 24 .data system_n32wb03x.o
|
||||
0x20004004 0x010038e4 0x00000008 Data RW 246 .data boot_usart.o
|
||||
0x2000400c 0x010038ec 0x00000003 Data RW 311 .data boot_cli.o
|
||||
0x2000400f 0x010038ef 0x00000001 PAD
|
||||
0x20004010 0x010038f0 0x0000003d Data RW 434 .data app_ota.o
|
||||
0x2000404d 0x0100392d 0x00000001 Data RW 535 .data app_bootset.o
|
||||
0x2000404e 0x0100392e 0x00000002 PAD
|
||||
0x20004050 0x01003930 0x0000000c Data RW 1204 .data n32wb03x_qflash.o
|
||||
0x2000405c 0x0100393c 0x00000004 Data RW 1310 .data mc_p.l(errno.o)
|
||||
0x20004060 - 0x00000034 Zero RW 22 .bss system_n32wb03x.o
|
||||
0x20004094 - 0x00000c00 Zero RW 245 .bss boot_usart.o
|
||||
0x20004c94 - 0x00000330 Zero RW 306 .bss boot_cli.o
|
||||
0x20004fc4 - 0x000001e7 Zero RW 423 .bss app_ota.o
|
||||
0x200051ab 0x01003620 0x00000001 PAD
|
||||
0x200051ac - 0x00000328 Zero RW 1192 .bss n32wb03x_qflash.o
|
||||
0x200054d4 0x01003620 0x00000004 PAD
|
||||
0x20004c94 - 0x00000330 Zero RW 308 .bss boot_cli.o
|
||||
0x20004fc4 - 0x000001e7 Zero RW 433 .bss app_ota.o
|
||||
0x200051ab 0x01003940 0x00000001 PAD
|
||||
0x200051ac - 0x00000328 Zero RW 1202 .bss n32wb03x_qflash.o
|
||||
0x200054d4 0x01003940 0x00000004 PAD
|
||||
0x200054d8 - 0x00000800 Zero RW 1 STACK startup_n32wb03x.o
|
||||
|
||||
|
||||
@ -991,12 +1013,12 @@ Image component sizes
|
||||
|
||||
2092 1148 145 1 0 6739 app_bootset.o
|
||||
2388 322 0 61 487 12597 app_ota.o
|
||||
2796 756 774 3 816 18440 boot_cli.o
|
||||
3492 1014 850 3 816 20012 boot_cli.o
|
||||
68 6 0 0 0 874 boot_crc32.o
|
||||
472 66 0 8 3072 4161 boot_usart.o
|
||||
500 208 0 0 0 5019 main.o
|
||||
276 18 0 0 0 4372 n32wb03x_dma.o
|
||||
290 4 0 0 0 2252 n32wb03x_gpio.o
|
||||
318 4 0 0 0 4160 n32wb03x_gpio.o
|
||||
190 32 804 12 808 4258 n32wb03x_qflash.o
|
||||
228 32 12 0 0 2848 n32wb03x_rcc.o
|
||||
270 24 0 0 0 5093 n32wb03x_usart.o
|
||||
@ -1004,7 +1026,7 @@ Image component sizes
|
||||
900 60 472 4 52 124580 system_n32wb03x.o
|
||||
|
||||
----------------------------------------------------------------------
|
||||
10512 2684 2438 92 7288 191977 Object Totals
|
||||
11236 2942 2514 92 7288 195457 Object Totals
|
||||
0 0 32 0 0 0 (incl. Generated)
|
||||
14 0 7 3 5 0 (incl. Padding)
|
||||
|
||||
@ -1057,15 +1079,15 @@ Image component sizes
|
||||
|
||||
Code (inc. data) RO Data RW Data ZI Data Debug
|
||||
|
||||
11186 2708 2574 96 7288 189377 Grand Totals
|
||||
11186 2708 2574 96 7288 189377 ELF Image Totals
|
||||
11186 2708 2574 96 0 0 ROM Totals
|
||||
11910 2966 2650 96 7288 192637 Grand Totals
|
||||
11910 2966 2650 96 7288 192637 ELF Image Totals
|
||||
11910 2966 2650 96 0 0 ROM Totals
|
||||
|
||||
==============================================================================
|
||||
|
||||
Total RO Size (Code + RO Data) 13760 ( 13.44kB)
|
||||
Total RO Size (Code + RO Data) 14560 ( 14.22kB)
|
||||
Total RW Size (RW Data + ZI Data) 7384 ( 7.21kB)
|
||||
Total ROM Size (Code + RO Data + RW Data) 13856 ( 13.53kB)
|
||||
Total ROM Size (Code + RO Data + RW Data) 14656 ( 14.31kB)
|
||||
|
||||
==============================================================================
|
||||
|
||||
|
||||
Binary file not shown.
@ -3,19 +3,19 @@ Rebuild target 'caiic_boot'
|
||||
assembling startup_n32wb03x.s...
|
||||
compiling boot_crc32.c...
|
||||
compiling n32wb03x_gpio.c...
|
||||
compiling boot_cli.c...
|
||||
compiling n32wb03x_rcc.c...
|
||||
compiling app_ota.c...
|
||||
compiling main.c...
|
||||
compiling boot_usart.c...
|
||||
compiling app_ota.c...
|
||||
compiling app_bootset.c...
|
||||
compiling boot_cli.c...
|
||||
compiling system_n32wb03x.c...
|
||||
compiling n32wb03x_rcc.c...
|
||||
compiling n32wb03x_dma.c...
|
||||
compiling n32wb03x_usart.c...
|
||||
compiling n32wb03x_dma.c...
|
||||
compiling system_n32wb03x.c...
|
||||
compiling app_bootset.c...
|
||||
compiling n32wb03x_qflash.c...
|
||||
linking...
|
||||
Program Size: Code=11186 RO-data=2574 RW-data=96 ZI-data=7288
|
||||
Program Size: Code=11910 RO-data=2650 RW-data=96 ZI-data=7288
|
||||
FromELF: creating hex file...
|
||||
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).
|
||||
Build Time Elapsed: 00:00:02
|
||||
Build Time Elapsed: 00:00:01
|
||||
|
||||
@ -268,6 +268,132 @@ static void CmdUartInfo(int argc, char* argv[])
|
||||
cli_write("flow control: none; tx: polled; rx: DMA ring (3KB, polled)\r\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Parse a "pxN" pin name (e.g. "pb0", "PA3", "PB13") into a GPIO port
|
||||
* and pin mask. @return 1 on success, 0 on bad name/out-of-range pin.
|
||||
*/
|
||||
static int pinset_parse(const char* name, GPIO_Module** port, uint16_t* mask)
|
||||
{
|
||||
const char* p;
|
||||
int pin = 0;
|
||||
|
||||
if (name[0] != 'p' && name[0] != 'P')
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
if (name[1] == 'a' || name[1] == 'A')
|
||||
{
|
||||
*port = GPIOA;
|
||||
}
|
||||
else if (name[1] == 'b' || name[1] == 'B')
|
||||
{
|
||||
*port = GPIOB;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
p = &name[2];
|
||||
if (*p < '0' || *p > '9')
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
while (*p >= '0' && *p <= '9')
|
||||
{
|
||||
pin = pin * 10 + (*p - '0');
|
||||
if (pin > 15)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
p++;
|
||||
}
|
||||
if (*p != '\0')
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (*port == GPIOA && pin > 6) /* PA7 not bonded on this chip */
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
if (*port == GPIOB && pin > 13) /* PB14/PB15 not bonded */
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
*mask = (uint16_t)(1u << pin);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief "pinset <pxN> [0|1]": set a GPIO output high/low, or read its level.
|
||||
* e.g. "pinset pb0 1", "pinset pa0 0", "pinset pb0" (read level).
|
||||
*/
|
||||
static void CmdPinSet(int argc, char* argv[])
|
||||
{
|
||||
GPIO_Module* port = NULL;
|
||||
uint16_t mask = 0;
|
||||
GPIO_InitType s;
|
||||
|
||||
if (argc < 2)
|
||||
{
|
||||
cli_write("usage: pinset <pxN> [0|1] (e.g. pinset pb0 1)\r\n");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!pinset_parse(argv[1], &port, &mask))
|
||||
{
|
||||
cli_printf("bad pin: %s (use pa0..pa6 / pb0..pb13)\r\n", argv[1]);
|
||||
return;
|
||||
}
|
||||
|
||||
if (port == GPIOA)
|
||||
{
|
||||
RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOA, ENABLE);
|
||||
}
|
||||
else
|
||||
{
|
||||
RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOB, ENABLE);
|
||||
}
|
||||
|
||||
if (argc >= 3)
|
||||
{
|
||||
/* reserved-pin guard: warn before reconfiguring SWD / console pins */
|
||||
if ((port == GPIOA && (mask & (GPIO_PIN_4 | GPIO_PIN_5)) != 0u) ||
|
||||
(port == GPIOB && (mask & (GPIO_PIN_6 | GPIO_PIN_7)) != 0u))
|
||||
{
|
||||
cli_write("warning: SWD/console pin - reconfigure may break the link\r\n");
|
||||
}
|
||||
|
||||
GPIO_InitStruct(&s);
|
||||
s.Pin = mask;
|
||||
s.GPIO_Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitPeripheral(port, &s);
|
||||
|
||||
if (argv[2][0] == '1' && argv[2][1] == '\0')
|
||||
{
|
||||
GPIO_SetBits(port, mask);
|
||||
cli_printf("%s = 1\r\n", argv[1]);
|
||||
}
|
||||
else if (argv[2][0] == '0' && argv[2][1] == '\0')
|
||||
{
|
||||
GPIO_ResetBits(port, mask);
|
||||
cli_printf("%s = 0\r\n", argv[1]);
|
||||
}
|
||||
else
|
||||
{
|
||||
cli_write("usage: pinset <pxN> [0|1] (0=low, 1=high)\r\n");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* read: the input data register reflects the actual pin level */
|
||||
cli_printf("%s = %u\r\n", argv[1],
|
||||
(unsigned)(GPIO_ReadInputDataBit(port, mask) ? 1u : 0u));
|
||||
}
|
||||
}
|
||||
|
||||
static const CliCmd_t s_cmds[] = {
|
||||
{"help", "help [cmd]: list commands / show one command's help", CmdHelp},
|
||||
{"version", "show bootloader version", CmdVersion},
|
||||
@ -277,6 +403,7 @@ static const CliCmd_t s_cmds[] = {
|
||||
{"appsw", "appsw [1|2]: switch boot bank (crc verified) + reboot", AppBootset_CmdAppswitch},
|
||||
{"ota", "ota: UART enters OTA binary frame mode (see help ota)", CmdOta},
|
||||
{"reset", "reset: system reset (reboot)", CmdReset},
|
||||
{"pinset", "pinset <pxN> [0|1]: set/read GPIO level (pa0-6/pb0-13)", CmdPinSet},
|
||||
{"uartinfo", "uartinfo: show USART1 pins/baud/format", CmdUartInfo},
|
||||
};
|
||||
|
||||
|
||||
@ -6,6 +6,6 @@
|
||||
#ifndef __BOOT_VERSION_H__
|
||||
#define __BOOT_VERSION_H__
|
||||
|
||||
#define BOOT_FW_VERSION "V1.00.06"
|
||||
#define BOOT_FW_VERSION "V1.00.07"
|
||||
|
||||
#endif /* __BOOT_VERSION_H__ */
|
||||
|
||||
19
docs/开发日志.md
19
docs/开发日志.md
@ -1489,3 +1489,22 @@ APP2 链接的镜像发向 APP1 区。设备端 END 校验(向量表 Reset PC
|
||||
(16KB 区内);整包 + OTA 包已更新。APP ZI 不变(30140),`__initial_sp`
|
||||
0x2000BDF0 距 0x2000C000 悬崖 528B(merge_image.py 报 within 1KB 警告,
|
||||
为既有状态,非本次引入,后续加 ZI 需注意)。
|
||||
|
||||
## 59. CLI 新增 `pinset` 管脚高低电平命令(2026-09-06,APP V1.00.31 / Boot V1.00.07)
|
||||
|
||||
- 需求:加一条 CLI 命令直接设置/读取 GPIO 高低电平,便于硬件联调:
|
||||
`pinset pb0 1` / `pinset pa0 0`(设置输出),`pinset pb0`(读当前电平)。
|
||||
- 实现(`Boot/src/boot_cli.c` 与 `mcm-ddc-ble/src/cli_core.c` 各加一份,
|
||||
逻辑相同):
|
||||
- `pinset_parse()`:解析 `pxN`(大小写不敏感,p+a/b+数字),映射到
|
||||
`GPIOA/GPIOB` + `1<<n` 位掩码;范围校验 PA0~6(PA7 未引出)、PB0~13
|
||||
(PB14/15 未引出),非法名/越界报错;
|
||||
- `CmdPinSet`:带值 → 使能端口时钟 + 配输出推挽 + `GPIO_SetBits/ResetBits`;
|
||||
不带值 → 读 `GPIO_ReadInputDataBit`(输入数据寄存器反映实际电平);
|
||||
对 PA4/PA5(SWD)、PB6/PB7(USART1 控制台)在重配前打印 warning;
|
||||
- 命令表注册:`pinset <pxN> [0|1]: set/read GPIO level (pa0-6/pb0-13)`。
|
||||
- 与 §58 数码管驱动的共存:数码管占用 PB0/PB1/PA0/PA1/PB11/PB13/PA6,
|
||||
APP 下 `pinset` 点这些脚会被 `display_task`(20ms 周期)覆盖,属预期
|
||||
(调试工具);其余空闲脚(PB2~5/PB10/PB12/PA2/PA3)可稳定读写。
|
||||
- 版本:Boot `V1.00.06` → `V1.00.07`;APP `V1.00.30` → `V1.00.31`
|
||||
(`APP_FW_VERSION_NUM` 0x0001001E → 0x0001001F)。
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
@ -9,12 +9,12 @@
|
||||
#define __APP_VERSION_H__
|
||||
|
||||
#ifndef APP_FW_VERSION
|
||||
#define APP_FW_VERSION "V1.00.30"
|
||||
#define APP_FW_VERSION "V1.00.31"
|
||||
#endif
|
||||
|
||||
/* Numeric form used by the BLE info query / OTA records: 0x00MMmmpp */
|
||||
#ifndef APP_FW_VERSION_NUM
|
||||
#define APP_FW_VERSION_NUM 0x0001001Eu
|
||||
#define APP_FW_VERSION_NUM 0x0001001Fu
|
||||
#endif
|
||||
|
||||
#endif /* __APP_VERSION_H__ */
|
||||
|
||||
@ -342,6 +342,132 @@ static void CmdOta(int argc, char* argv[])
|
||||
app_cli_ota_mode_enter();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Parse a "pxN" pin name (e.g. "pb0", "PA3", "PB13") into a GPIO port
|
||||
* and pin mask. @return 1 on success, 0 on bad name/out-of-range pin.
|
||||
*/
|
||||
static int pinset_parse(const char* name, GPIO_Module** port, uint16_t* mask)
|
||||
{
|
||||
const char* p;
|
||||
int pin = 0;
|
||||
|
||||
if (name[0] != 'p' && name[0] != 'P')
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
if (name[1] == 'a' || name[1] == 'A')
|
||||
{
|
||||
*port = GPIOA;
|
||||
}
|
||||
else if (name[1] == 'b' || name[1] == 'B')
|
||||
{
|
||||
*port = GPIOB;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
p = &name[2];
|
||||
if (*p < '0' || *p > '9')
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
while (*p >= '0' && *p <= '9')
|
||||
{
|
||||
pin = pin * 10 + (*p - '0');
|
||||
if (pin > 15)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
p++;
|
||||
}
|
||||
if (*p != '\0')
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (*port == GPIOA && pin > 6) /* PA7 not bonded on this chip */
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
if (*port == GPIOB && pin > 13) /* PB14/PB15 not bonded */
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
*mask = (uint16_t)(1u << pin);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief "pinset <pxN> [0|1]": set a GPIO output high/low, or read its level.
|
||||
* e.g. "pinset pb0 1", "pinset pa0 0", "pinset pb0" (read level).
|
||||
*/
|
||||
static void CmdPinSet(int argc, char* argv[])
|
||||
{
|
||||
GPIO_Module* port = NULL;
|
||||
uint16_t mask = 0;
|
||||
GPIO_InitType s;
|
||||
|
||||
if (argc < 2)
|
||||
{
|
||||
cli_write("usage: pinset <pxN> [0|1] (e.g. pinset pb0 1)\r\n");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!pinset_parse(argv[1], &port, &mask))
|
||||
{
|
||||
cli_printf("bad pin: %s (use pa0..pa6 / pb0..pb13)\r\n", argv[1]);
|
||||
return;
|
||||
}
|
||||
|
||||
if (port == GPIOA)
|
||||
{
|
||||
RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOA, ENABLE);
|
||||
}
|
||||
else
|
||||
{
|
||||
RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOB, ENABLE);
|
||||
}
|
||||
|
||||
if (argc >= 3)
|
||||
{
|
||||
/* reserved-pin guard: warn before reconfiguring SWD / console pins */
|
||||
if ((port == GPIOA && (mask & (GPIO_PIN_4 | GPIO_PIN_5)) != 0u) ||
|
||||
(port == GPIOB && (mask & (GPIO_PIN_6 | GPIO_PIN_7)) != 0u))
|
||||
{
|
||||
cli_write("warning: SWD/console pin - reconfigure may break the link\r\n");
|
||||
}
|
||||
|
||||
GPIO_InitStruct(&s);
|
||||
s.Pin = mask;
|
||||
s.GPIO_Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitPeripheral(port, &s);
|
||||
|
||||
if (argv[2][0] == '1' && argv[2][1] == '\0')
|
||||
{
|
||||
GPIO_SetBits(port, mask);
|
||||
cli_printf("%s = 1\r\n", argv[1]);
|
||||
}
|
||||
else if (argv[2][0] == '0' && argv[2][1] == '\0')
|
||||
{
|
||||
GPIO_ResetBits(port, mask);
|
||||
cli_printf("%s = 0\r\n", argv[1]);
|
||||
}
|
||||
else
|
||||
{
|
||||
cli_write("usage: pinset <pxN> [0|1] (0=low, 1=high)\r\n");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* read: the input data register reflects the actual pin level */
|
||||
cli_printf("%s = %u\r\n", argv[1],
|
||||
(unsigned)(GPIO_ReadInputDataBit(port, mask) ? 1u : 0u));
|
||||
}
|
||||
}
|
||||
|
||||
/* Command table; add new commands here */
|
||||
static const CliCmd_t s_cmds[] = {
|
||||
{"help", "help [cmd]: list commands / show one command's help", CmdHelp},
|
||||
@ -357,6 +483,7 @@ static const CliCmd_t s_cmds[] = {
|
||||
{"appsw", "appsw [1|2]: switch boot bank (crc verified) + reboot", AppBootset_CmdAppswitch},
|
||||
{"ota", "ota: UART enters OTA binary frame mode (see help ota)", CmdOta},
|
||||
{"reset", "reset: system reset (reboot)", CmdReset},
|
||||
{"pinset", "pinset <pxN> [0|1]: set/read GPIO level (pa0-6/pb0-13)", CmdPinSet},
|
||||
{"factory", "factory: restore params to defaults and reboot", CmdFactory},
|
||||
{"uartrst", "uartrst: re-init USART1 (460800 8N1), flush rx queue", CmdUartRst},
|
||||
{"uartinfo", "uartinfo: show USART1 pins/baud/format", CmdUartInfo},
|
||||
|
||||
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@ -1,7 +1,7 @@
|
||||
{
|
||||
"file": "mothercup_ble_prod_ota.bin",
|
||||
"target_bank": 1,
|
||||
"size": 56584,
|
||||
"crc32": "0xEE8BBF75",
|
||||
"version": 65566
|
||||
"size": 57264,
|
||||
"crc32": "0xCA35C291",
|
||||
"version": 65567
|
||||
}
|
||||
Binary file not shown.
@ -1,7 +1,7 @@
|
||||
{
|
||||
"file": "mothercup_ble_prod_ota_app2.bin",
|
||||
"target_bank": 2,
|
||||
"size": 56888,
|
||||
"crc32": "0x7D11C1E5",
|
||||
"version": 65566
|
||||
"size": 57572,
|
||||
"crc32": "0x5A93FD89",
|
||||
"version": 65567
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user