173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

stm32halbootloader

keros@mark 2023-03-19 资讯中心

stm32bootload有什么作用

目需要编写了STM32的bootloader,其实编写bootloader主要事项有以下:

1、为你的bootloader程序选择存储器地址,因为STM32的存储器FLASH存储程序代码空间为512K,需要进行划分。

2、如果需要使用JTAG在线调试,则需要配置区域:

3、为您的用户程序选择合适的存储空间:

同时配置在线调试区域:

4、bootloader程序编写基本流程如下:

1)检测有无需要更新的标志,用户可自定义。比如说读取flash某位置存储的字节作为标志位。

2)如需更新,则调用STM32的FLASH程序擦鞋用户代码部分。

3)将新的bin文件(即2进制文件直接烧写进去,需要将keil生成的hex文件转换为bin文件,然后存储到外扩展的flash中)写入到STM32自带的FLASH中去,记住需要与上述设置的用户代码存储区一致。

4)更新成功后再跳转至用户程序。

5、用户程序需要注意一点,需要在程序运行前重新设置中断向量表,即:NVIC_SetVectorTable()。

6、用STM32自带的烧录软件进行烧录时,需要修改项目如下:

1)打开安装后目标文件中的map文件夹,我们所用的STM32为512Kflash,所以选取STM32_High-density_512K.STmap,将其分解为两个STmap文件(此文件可用记事本 打开)

STmap文件中,扇区是以每2K为一page来显示的,所以boot区我们只需要到page7,用户区我们需要page8到最后。

修改完成后再次打开此软件会发现多出了两个flash选项,可以根据此处来选择需要存储的代码区。

STM32 Bootloader对程序进行加密

三、利用id做软件加密

1,如果板子上有外部存储器,可以先编写一个程序,利用算法把id计算得到一些值存入外部存储器,然后再烧写真正的程序,真正的程序去校验外部存储器的数据是否合法即可

2,利用板子上按键组合,或是上电按住某些键,程序在这个时候利用算法把id计算得到一些值存入程序区(stm8为EE区),程序运行时去验证程序区数据是否正确

3,轩微编程器有软件加密的功能,编程器会读芯片id,根据算法直接改写缓冲区,达到软件加密的作用

4,读出的id通过一定算法,例如异或加上一个数,得到的数据存入flash(只运行一次,运行后标志位也存入flash),下次读到这个标志位,就不运行这个程序。

四、做软件加密时注意

1,不要在程序中直接出现id地址,例如STM32:1FFFF7E8 1FFFF7EC 1FFFF7F0 STM8: 0x4865~0x4870

2, 利用校验和或是crc对程序区进行校验,防止改程序

STM32的BootLoader

这叫IAP。官方BootLoader是为了使用USART、USB等接口去烧写整个FLASH。IAP升级程序是烧写在FLASH里的。

stm32的bootloader需要自己写吗

不一定,你可以是芯片内固化好的bootloader进行程序加载或升级。

如果希望按照自己的方式中途经常修改代码,也可以自行编写BOOTLOADER.

怎么下载stm32官方bootloader

首先在能正常工作的最小系统板,开发板上将232电路调通,保证可用,就是无障碍的和PC通讯。然后将写好编译好的HEX文件载入下载即可,这里STM32的识别hex文件的,这点比LM3S系列的ARM 强。首先要到网上下载Flash_Loader_Demonstrator_V2.1.0_Setup串口下载的上位机软件,去ST官方网站去下载也可以。

2.

安装软件并进行相关设计 确认你的串口设置OK,注意串口号对应即可。

3.

连接下载 点击Next, 注意当你单击Next下一步的时候,可能会弹出一个对话框: 检查两个Boot引脚,应该是Boot0=1;Boot1=0(接地),设置完成,对MCU重新上电就可以。 继续Next. 连接OK,Next. 这一步将自动选择器件,然后NEXT. 在Download from file

查看更多

怎么使用stm32写IAP的bootloader和APP

bootloader写在0x08000000开始的地方,可以设置大小为0x10000,64kb大小。APP写在0x08010000开始。在bootloader去读0x08010000的值给MSP,0x08010004为程序开始的位置,都为16位数据,然后再跳转,注意跳转时最好关闭中断和外设,不同内核还需要设置终端向量表:SCB-VTOR=0x08000000|((ADDR_FLASH_SECTOR_2-0x08000000)(uint32_t)0x1FFFFF80);ADDR_FLASH_SECTOR_2定义为0x08010000;

本文标签:stm32halbootloader

产品列表
产品封装
友情链接