IAP在stm32f103c8t6上的实现

       手上的单片机是STM32F103C8T6,ROM容量是64KB,起始地址为 0x0800 0000;RAM容量是16KB,起始地址为0x0200 0000。开发环境是Keil5,用到的工具还有串口助手。我将待下载的程序生成为bin文件,再通过串口助手发送给单片机接收。
       在设计IAP程序时,要考虑ROM和RAM的大小。一方面,APP程序下载到单片机时是存放在ROM中的,如果你想下载多个APP程序,肯定需要ROM大些;另一方面,在串口接收数据时,APP代码首先存在一个数组变量中,这需要占用很大的RAM。我的APP程序是一个简单的灯闪烁程序,仅为验证IAP可行。
       首先要完成bin文件的生成:
       第一步:配置程序到底写在flash的哪个区域。APP代码首先从0x0800 C000 开始写,字长为0x4000,表示给APP代码预留16K的空间,另外48KB全部留给Bootloader程序。RAM不作修改,因为我是写进ROM(即flash)里的呀。由此还可知地址偏移量为0xC000(从0x0800 0000偏到0x0800 C000)
       第二步:在代码初始化阶段添加一条代码: SCB->VTOR = FLASH_BASE | 0xC000;//flash偏移量为0xc000,这是对中断向量表的重定向。
       第三步:配置程序如何生成bin文件。在Option(即配置单片机型号、下载器那个窗口)里找到User,在.....After Build\Rebuild 里 勾选Run#1,并黏贴如下内容&#
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值