T1608 000:034 SEGGER J-Link V6.14a Log File (0000ms, 0013ms total)
T1608 000:034 DLL Compiled: Feb 27 2017 18:41:26 (0000ms, 0013ms total)
T1608 000:034 Logging started @ 2023-03-02 10:29 (0000ms, 0013ms total)
T1608 000:034 JLINK_SetWarnOutHandler(...) (0000ms, 0013ms total)
T1608 000:034 JLINK_OpenEx(...)
Firmware: J-Link V9 compiled May 17 2019 09:50:41
Hardware: V9.60
S/N: 69660201
Feature(s): RDI, GDB, FlashDL, FlashBP, JFlashWEBSRV Webserver running on local port 19080 (0011ms, 0024ms total)
T1608 000:034 returns O.K. (0011ms, 0024ms total)
T1608 000:045 JLINK_SetErrorOutHandler(...) (0000ms, 0024ms total)
T1608 000:045 JLINK_ExecCommand("ProjectFile = "C:\Users\aohua\Desktop\IAP_1.0.1\IAP Bootloader V1.0\Projects\MDK-ARM\JLinkSettings.ini"", ...). C:\Program Files (x86)\SEGGER\JLink_V614a\JLinkDevices.xml evaluated successfully. returns 0x00 (0065ms, 0089ms total)
T1608 000:110 JLINK_ExecCommand("Device = STM32F103ZE", ...). Device "STM32F103ZE" selected. returns 0x00 (0000ms, 0089ms total)
T1608 000:110 JLINK_ExecCommand("DisableConnectionTimeout", ...). returns 0x01 (0000ms, 0089ms total)
T1608 000:110 JLINK_GetHardwareVersion() returns 0x17700 (0000ms, 0089ms total)
T1608 000:110 JLINK_GetDLLVersion() returns 61401 (0000ms, 0089ms total)
T1608 000:110 JLINK_GetFirmwareString(...) (0000ms, 0089ms total)
T1608 000:111 JLINK_GetDLLVersion() returns 61401 (0000ms, 0089ms total)
T1608 000:111 JLINK_GetCompileDateTime() (0000ms, 0089ms total)
T1608 000:111 JLINK_GetFirmwareString(...) (0000ms, 0089ms total)
T1608 000:112 JLINK_GetHardwareVersion() returns 0x17700 (0000ms, 0089ms total)
T1608 000:113 JLINK_TIF_Select(JLINKARM_TIF_SWD) returns 0x00 (0001ms, 0090ms total)
T1608 000:114 JLINK_SetSpeed(10000) (0000ms, 0090ms total)
T1608 000:114 JLINK_GetId() >0x108 TIF>Found SWD-DP with ID 0x1BA01477 >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF>
>0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF> >0x108 TIF>Found SWD-DP with ID 0x1BA01477 >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF>AP-IDR: 0x14770011, Type: AHB-AP
AHB-AP ROM: 0xE00FF000 (Base addr. of first ROM table) >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF>Found Cortex-M3 r1p1, Little endian. -- CPU_ReadMem(4 bytes @ 0xE000EDF0) -- CPU_WriteMem(4 bytes @ 0xE000EDF0) -- CPU_ReadMem(4 bytes @ 0xE0002000)FPUnit: 6 code (BP) slots and 2 literal slots -- CPU_ReadMem(4 bytes @ 0xE000EDFC) -- CPU_WriteMem(4 bytes @ 0xE000EDFC)
-- CPU_ReadMem(4 bytes @ 0xE0001000) -- CPU_WriteMem(4 bytes @ 0xE0001000) -- CPU_ReadMem(4 bytes @ 0xE000ED88) -- CPU_WriteMem(4 bytes @ 0xE000ED88) -- CPU_ReadMem(4 bytes @ 0xE000ED88) -- CPU_WriteMem(4 bytes @ 0xE000ED88)CoreSight components:ROMTbl 0 @ E00FF000 -- CPU_ReadMem(16 bytes @ 0xE00FF000) -- CPU_ReadMem(16 bytes @ 0xE000EFF0) -- CPU_ReadMem(16 bytes @ 0xE000EFE0)ROMTbl 0 [0]: FFF0F000, CID: B105E00D, PID: 001BB000 SCS -- CPU_ReadMem(16 bytes @ 0xE0001FF0)
-- CPU_ReadMem(16 bytes @ 0xE0001FE0)ROMTbl 0 [1]: FFF02000, CID: B105E00D, PID: 001BB002 DWT -- CPU_ReadMem(16 bytes @ 0xE0002FF0) -- CPU_ReadMem(16 bytes @ 0xE0002FE0)ROMTbl 0 [2]: FFF03000, CID: B105E00D, PID: 000BB003 FPB -- CPU_ReadMem(16 bytes @ 0xE0000FF0) -- CPU_ReadMem(16 bytes @ 0xE0000FE0)ROMTbl 0 [3]: FFF01000, CID: B105E00D, PID: 001BB001 ITM -- CPU_ReadMem(16 bytes @ 0xE00FF010) -- CPU_ReadMem(16 bytes @ 0xE0040FF0) -- CPU_ReadMem(16 bytes @ 0xE0040FE0)
ROMTbl 0 [4]: FFF41000, CID: B105900D, PID: 001BB923 TPIU-Lite -- CPU_ReadMem(16 bytes @ 0xE0041FF0) -- CPU_ReadMem(16 bytes @ 0xE0041FE0)ROMTbl 0 [5]: FFF42000, CID: B105900D, PID: 101BB924 ETM-M3 >0x0D TIF> >0x21 TIF> returns 0x1BA01477 (0020ms, 0110ms total)
T1608 000:134 JLINK_GetDLLVersion() returns 61401 (0000ms, 0110ms total)
T1608 000:134 JLINK_CORE_GetFound() returns 0x30000FF (0000ms, 0110ms total)
T1608 000:134 JLINK_GetDebugInfo(0x100 = JLINKARM_ROM_TABLE_ADDR_INDEX) -- Value=0xE00FF000 returns 0x00 (0000ms, 0110ms total)
T1608 000:134 JLINK_GetDebugInfo(0x100 = JLINKARM_ROM_TABLE_ADDR_INDEX) -- Value=0xE00FF000 returns 0x00 (0000ms, 0110ms total)
T1608 000:134 JLINK_GetDebugInfo(0x101 = JLINKARM_DEBUG_INFO_ETM_ADDR_INDEX) -- Value=0xE0041000 returns 0x00 (0000ms, 0110ms total)
T1608 000:134 JLINK_GetDebugInfo(0x102 = JLINKARM_DEBUG_INFO_MTB_ADDR_INDEX) -- Value=0x00000000 returns 0x00 (0000ms, 0110ms total)
T1608 000:134 JLINK_GetDebugInfo(0x103 = JLINKARM_DEBUG_INFO_TPIU_ADDR_INDEX) -- Value=0xE0040000 returns 0x00 (0000ms, 0110ms total)
T1608 000:134 JLINK_GetDebugInfo(0x104 = JLINKARM_DEBUG_INFO_ITM_ADDR_INDEX) -- Value=0xE0000000 returns 0x00 (0000ms, 0110ms total)
T1608 000:134 JLINK_GetDebugInfo(0x105 = JLINKARM_DEBUG_INFO_DWT_ADDR_INDEX) -- Value=0xE0001000 returns 0x00 (0000ms, 0110ms total)
T1608 000:134 JLINK_GetDebugInfo(0x106 = JLINKARM_DEBUG_INFO_FPB_ADDR_INDEX) -- Value=0xE0002000 returns 0x00 (0000ms, 0110ms total)
T1608 000:134 JLINK_GetDebugInfo(0x107 = JLINKARM_DEBUG_INFO_NVIC_ADDR_INDEX) -- Value=0xE000E000 returns 0x00 (0000ms, 0110ms total)
T1608 000:134 JLINK_GetDebugInfo(0x10C = JLINKARM_DEBUG_INFO_DBG_ADDR_INDEX) -- Value=0xE000EDF0 returns 0x00 (0000ms, 0110ms total)
T1608 000:134 JLINK_ReadMemU32(0xE000ED00, 0x0001 Items, ...) -- CPU is running -- CPU_ReadMem(4 bytes @ 0xE000ED00) - Data: 31 C2 1F 41 returns 0x01 (0000ms, 0110ms total)
T1608 000:134 JLINK_SetResetType(JLINKARM_CM3_RESET_TYPE_NORMAL) returns JLINKARM_CM3_RESET_TYPE_NORMAL (0000ms, 0110ms total)
T1608 000:134 JLINK_Reset() -- CPU is running -- CPU_WriteMem(4 bytes @ 0xE000EDF0) -- CPU is running -- CPU_WriteMem(4 bytes @ 0xE000EDFC) >0x35 TIF> -- CPU is running -- CPU_WriteMem(4 bytes @ 0xE000ED0C) -- CPU is running -- CPU_ReadMem(4 bytes @ 0xE000EDF0) -- CPU is running -- CPU_ReadMem(4 bytes @ 0xE000EDF0) -- CPU is running -- CPU_WriteMem(4 bytes @ 0xE000EDF0) -- CPU is running -- CPU_WriteMem(4 bytes @ 0xE000EDFC) -- CPU is running -- CPU_ReadMem(4 bytes @ 0xE000EDF0)
-- CPU_WriteMem(4 bytes @ 0xE0002000) -- CPU_ReadMem(4 bytes @ 0xE000EDFC) -- CPU_ReadMem(4 bytes @ 0xE0001000) (0014ms, 0124ms total)
T1608 000:148 JLINK_ReadReg(R15 (PC)) returns 0x080001D4 (0000ms, 0124ms total)
T1608 000:148 JLINK_ReadReg(XPSR) returns 0x01000000 (0000ms, 0124ms total)
T1608 000:148 JLINK_Halt() returns 0x00 (0000ms, 0124ms total)
T1608 000:148 JLINK_IsHalted() returns TRUE (0000ms, 0124ms total)
T1608 000:148 JLINK_ReadMemU32(0xE000EDF0, 0x0001 Items, ...) -- CPU_ReadMem(4 bytes @ 0xE000EDF0) - Data: 03 00 03 00 returns 0x01 (0001ms, 0125ms total)
T1608 000:149 JLINK_WriteU32(0xE000EDF0, 0xA05F0003) -- CPU_WriteMem(4 bytes @ 0xE000EDF0) returns 0x00 (0000ms, 0125ms total)
T1608 000:149 JLINK_WriteU32(0xE000EDFC, 0x01000000) -- CPU_WriteMem(4 bytes @ 0xE000EDFC) returns 0x00 (0000ms, 0125ms total)
T1608 000:150 JLINK_GetHWStatus(...) returns 0x00 (0000ms, 0125ms total)
T1608 000:150 JLINK_GetNumBPUnits(Type = 0xFFFFFF00) returns 0x06 (0000ms, 0125ms total)
T1608 000:150 JLINK_GetNumBPUnits(Type = 0xF0) returns 0x2000 (0000ms, 0125ms total)
T1608 000:150 JLINK_GetNumWPUnits() returns 0x04 (0000ms, 0125ms total)
T1608 000:151 JLINK_GetSpeed() returns 0x1770 (0000
STM32F103ZET6的Bootloader代码
需积分: 0 122 浏览量
更新于2023-03-11
收藏 21.98MB ZIP 举报
STM32F103ZET6是一款基于ARM Cortex-M3内核的微控制器,广泛应用于嵌入式系统设计。Bootloader是这类芯片在启动时运行的第一段程序,它的主要任务是加载应用程序到内存并执行。这个特定的Bootloader代码是基于"原子哥"(一位在嵌入式开发领域知名的博主)的实现进行简化,移除了非必要的功能,专注于Bootloader的核心功能。
Bootloader的主要功能可以分为以下几个方面:
1. **初始化硬件**:Bootloader在上电或复位后首先运行,它负责初始化CPU寄存器、系统时钟、中断控制器、内存以及外设接口如串口、闪存等,为后续的应用程序执行做好准备。
2. **应用程序加载**:Bootloader通常会从非易失性存储器(如Flash)读取应用程序,并将其复制到RAM中。对于STM32F103ZET6,这通常涉及对Flash的编程操作,需要遵循特定的擦写和编程步骤。
3. **应用程序校验**:在加载应用程序后,Bootloader可能还会执行校验,确保加载的数据没有在传输过程中被破坏。这通常通过计算CRC(循环冗余校验)或哈希值来实现。
4. **用户交互**:在某些应用中,Bootloader可能提供一个用户接口,允许通过串口、按键或其他接口选择和更新固件。这里的Bootloader据描述有串口提示,意味着用户可以通过串行通信与Bootloader交互。
5. **安全机制**:为了防止非法固件的更新,Bootloader还可以包含安全特性,如签名验证,只有经过授权的固件才能被加载和执行。
6. **IAP(In-Application Programming)**:IAP是STM32系列微控制器的一个特性,允许在应用程序运行期间更新Flash中的代码。这个压缩包中的"IAP_1.0.1"可能指的是Bootloader实现了IAP功能,用户可以在不中断现有程序运行的情况下更新固件。
在实际使用这个Bootloader时,你需要先将其烧录到STM32F103ZET6的闪存中。烧录过程通常使用ST-Link或JTAG调试器,配合相应的烧录软件如STM32CubeProgrammer。一旦Bootloader成功烧录,设备上电或复位后,Bootloader就会自动运行,等待串口的输入或按照预设的流程执行固件更新。
在开发基于STM32的项目时,自定义Bootloader是一个重要的步骤,因为它可以适应特定的应用需求,例如增加安全特性、优化升级流程或提供特定的通信协议。这个精简版的Bootloader代码可以帮助开发者更快地理解Bootloader的工作原理,并根据自己的项目需求进行定制。
二点多一撇
- 粉丝: 2
- 资源: 1
最新资源
- 课程设计基于Java web 的学生选课系统源码+数据库+课设报告
- 多路超声波避障小车源码 采用stm32主芯片,L298N驱动,PWM调速,LCD屏显示
- 汽车检测49-YOLO(v5至v9)、COCO数据集合集.rar
- 基于MSP432P401R的MPU6050陀螺仪串口输出姿态角程序源码.zip
- 水生动物检测7-YOLO(v7至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord数据集合集.rar
- 毕业设计YOLOv5钢材表面缺陷数据集检测系统源码(高分项目)
- STM32F4+摄像头OV7725采集图像并显示在LCD屏上
- Python实现钢材表面缺陷检测与分割竞赛的解决方案项目源码+文档说明
- 基于STM32F767驱动LTDC LCD(RGB屏)
- 水瓶检测43-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord数据集合集.rar