stm32 iap升级
一、介紹
IAP即為In Application Programming(在應用中編程),簡單來說就是程序自己可以讀寫存儲程序的flash空間,在程序上講就是實現flash讀和flash寫兩個函數,通過這個我們可以實現任意通信方式的燒寫程序,比如網絡燒寫、can燒寫、spi燒寫等等
升級,指的是燒寫程序,單片機默認燒寫程序的方式
1、isp
2、仿真器燒寫對應硬件就是swd和jtag燒寫
默認燒寫isp就是廠商芯片內部提供的串口燒寫,需要設置對應的boot選項,燒寫速度為串口速度11k/s,仿真器燒寫使用的是swd接口或者jtag接口,需要專門的仿真器,每個廠商都是自己仿真器,下載速度較快一般2M/s以上,重點在于一旦做成產品,產品有外殼封住了不方便升級程序,這個時候我們的IAP升級就體現出作用了,比如做成網絡升級,只需要插一根網線就可以完成下載程序,甚至可以遠程升級,只要產品連上網絡,我們在幾十公里的遠端也可以完成升級程序
二、IAP升級的實現原理
1、實現方式在程序里面寫入另一個應用程序
這里寫入的地方不能自己程序的位置,只能寫新的位置
我們把程序分成兩個,一個負責包含flash讀寫的燒寫的啟動程序,我們成為bootloader
另一個就是我們平時做的應用功能程序app
bootloader里面我們要實現
1、接收通信接口傳過來的燒寫文件
2、將接收的燒寫文件寫入flash
3、寫入完成跳轉到應用程序的地址
app程序的實現
就是我們正常的功能程序,不需要其他的變化
燒寫,默認燒寫都是在0地址開始,所以我們需要修改編譯選項中的兩個程序對應的地址
bootloader的燒寫需要用燒寫器或者isp燒寫
app直接iap燒寫就行
第二,單獨的程序里面是有中斷向量表的,中斷向向量表保存的就是中斷函數的地址,兩個程序的中斷函數都是獨立的,但是程序運行的時候并不知道,所以我們要修改兩個程序的中斷向量表
//待更新
總結
以上是生活随笔為你收集整理的stm32 iap升级的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开启Windows7快速启动栏
- 下一篇: 富媒体消息和传统短信有何区别?