久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> STM32 >> 瀏覽文章

IAR環境下STM32+IAP方案的實現

作者:佚名   來源:本站原創   點擊數:  更新時間:2014年09月15日   【字體:

--基于STM32F103ZET6UART通訊實現

 
、什么IAP,為什么要IAP
      IAP即為In Application Programming(在應用中編程),一般情況下,STM32F10x系列芯片為主控制器的設備在出廠時就已經使用J-Link仿真器將應用代碼燒錄了,如果在設備使用過程中需要進行應用代碼更換、升級等操作的話,則可能需要將設備返回原廠拆解出來再使用J-Link重新燒錄代碼,這就增加了很多不必要的麻煩。站在用戶的角度來說,就是能讓用戶自己來更換設備里邊的代碼程序而廠家這邊只需要提供給用戶一個代碼文件即可。
      IAP卻能很好的解決掉這個難題,一片STM32芯片的Code(代碼)區內一般只有一個用戶程序而IAP方案則是將代碼劃分為兩部分,兩部分區域各存放一個程序,一個叫bootloader(引導加載程序),另一個user application(用戶應用程序)。bootloader出廠時固定下來了,在需要變更user application時只需要通過觸發bootloader對userapplication擦除和重新寫入即可完成用戶應用的更換。1-1所示
圖 1-1
圖2-1
圖2-2
      STM32F10x有一個中斷向量表,這個中斷向量表存放在代碼開始部分的后4個字節處(即0x08000004),代碼開始的4個字節存放的是堆棧棧頂的地址,發生中斷后程序通過查找該表得到相應的中斷服務程序入口地址,然后再跳到相應的中斷服務程序中執行。上電后從0x08000004處取出復位中斷向量的地址,然后跳轉到復位中斷程序的入口(標號所示),執行結束后跳轉到main函數中(標號②所示)。在執行main函數的過程中發生中斷,STM32強制PC指針指回中斷向量(標號所示)從中斷向量表中找到相應的中斷函數入口地址,跳轉到相應的中斷服務函數(標號所示),執行完中斷函數后返回到main函數中來(標號所示)。
圖2-3
圖2-2
      對于步驟④⑤,網友認為是:“在main執行的過程中如果CPU得到一個中斷請求,PC指針強制跳轉到地址0x08000004中斷向量表處,而不是新的中斷向量表,圖標號所示,程序再根據我們設置的中斷向量表偏移量,跳轉對應中斷源新的中斷服務程序,如圖標號所示”。我對此的理解是:“當發生中斷后,程序從0x08000004()處的中斷向量表中得到相應的中斷服務函數入口地址,繼而跳轉相應的中斷服務程序。但是舊的中斷向量列表里邊存放的是IAP程序中斷函數的入口地址,它是如何得到user程序中斷函數的入口地址?所以覺得此種說法是錯誤的。當發生中斷時PC指針強制會跳轉到0x08000004處”這種說法并沒有錯,只是忽略了后續的一些知識要點導致這個說法出現矛盾。
圖3-1
圖3-2
圖3-3
關閉窗口
主站蜘蛛池模板: 精品国产伦一区二区三区观看体验 | 成人在线亚洲 | 国产美女精品 | 国产精品久久久久久久久免费 | 97视频在线免费 | 麻豆va | 本道综合精品 | 久久久久久久久91 | aaaaaaa片毛片免费观看 | 久久最新| 久久精品日 | 欧美日韩国产中文 | 中文字幕 国产精品 | 日韩激情在线 | 国产7777 | 精品中文字幕久久 | 久久久久久久久91 | 国产精品久久久一区二区三区 | 日韩av在线一区 | 在线观看亚洲 | 中文字幕国产 | 亚洲av毛片 | 麻豆一区二区三区精品视频 | 精品一二三| 性视频网 | 日韩欧美一级精品久久 | 久久精品久久久久久 | 欧美 日韩 亚洲91麻豆精品 | 天堂在线中文字幕 | 精品国产乱码久久久久久a丨 | 国产精品伦一区二区三级视频 | 国产伦精品一区二区三区高清 | 我爱操| 美女在线一区二区 | 欧美中国少妇xxx性高请视频 | 涩涩视频大全 | 精品国产91乱码一区二区三区 | 午夜精品久久久久久久久久久久久 | 日本久草| 日韩爱爱网站 | 国产精品18久久久久久久 |