可以通过图3看出快中断的处理流程(其他的中断处理流程类似)。

使用STR730开发产品实现串口ISP在线编程的设计方案

2.2 ISP执行的步骤

笔者把起到烧录Flash作用的程序单独作为一个工程编译、链接,生成.bin文件;然后把.bin文件转化成一个unsigned char型的数组,并把该数组放在一个单独的文件Programmet.c中;最后利用Scatter文件把Programmer.o定位在固定的地址空间(0x80001000~Ox80001fff,如图2所示)。这样一来,就可以编写汇编程序,把烧录程序Pro—grammer.o拷贝到RAM中,并让PC指针跳转到RAM中执行烧录。由于STR730没有外部Flash,要烧录Flash程序必须在RAM中运行,所以拷贝Programmer.o到RAM中是必需的。以下代码摘取自Startup.s。

CMP r1,#1

使用STR730开发产品实现串口ISP在线编程的设计方案

烧录程序Programmet的软件流程如图4所示。

使用STR730开发产品实现串口ISP在线编程的设计方案

需要说明的是:

①擦除Flash并不是完全擦除,而是擦除扇区0之外的其他扇区;

②数据缓冲区有限,每次只接收指定大小的数据,这样接收和烧录就可以并行进行,提高了ISP的速度;

③为了提高软件的安全性,原始的.bin文件是经过加密的,在烧录前需要将原始数据解密。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查