wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3069|回復: 1
收起左側

使用STM32F103單片機片內FLASH虛擬U盤,用于存儲文件IAP升級

[復制鏈接]
ID:219315 發表于 2023-6-11 09:52 | 顯示全部樓層 |閱讀模式
   最近做一個傳感器的項目,要求在傳感器里存儲校正參數,主機連接不同的傳感器時都能準確采值。于是想到用片內FLASH程序存儲空間劃一部分出來,虛擬成一個U盤存儲校正參數,可以節省一片EEROM芯片。網上找了很久,不是不能用,就是要收費,這里發出來方便有需要的人。虛擬U盤部分已經測試通過,后面IAP部分因為用不到,沒有測試。

利用片內FLASH虛擬U盤,使用文件復制方式實現IAP
USART IAP功能想必大家都很熟悉了,我們通過USART  IAP,可以很方便的實現程序升級。
但是在實際工作中,遇到一些特殊情況時,USART  IAP功能卻不像我們應用中那么方便,甚至
成了一大制約因素:
1.板子交給遠方的用戶,用戶手頭沒有帶串口的電腦。
2.用戶找到帶串口的電腦,卻仍然沒有合適的串口連接線。
3.終于找到了合適的串口連接線,仍沒有IAP軟件。
4.IAP軟件連同HEX文件一同發給用戶,用戶卻不會操作。在我們手頭很簡單的操作,到用戶手
里,卻總也搞不定(即便是簡單的超級終端,想要遠程教會用戶,也是很考驗功力的)。
5.不是所有的板子都設計有串口,沒有串口的板子,呵呵…… 幸好STM還給我們提供了DFU升級方式,基本可以解決以上多數問題,只需要留出USB接口就行。
但是DFU方式,仍然對用戶的要求很高,需要用戶熟悉軟件的操作過程和流程(見制約因素4)。
只有找到一種更簡單的方式,只要簡單的復制、粘貼操作,就可以實現程序更新,才能最大限度解決以上問題。
現在我們通過虛擬U盤IAP程序,將程序存儲的FLASH空間虛擬為U盤,只要將程序文件復制到這個U盤,就完成了程序更新,消除了用戶升級操作的學習過程。
51hei.jpg
0x8000000
0x8003000
0x8008000
無IAP程序  一般IAP程序  U盤IAP程序
文件系統
IAP程序  IAP程序
用戶程序  用戶程序  用戶程序 程序實現過程:
1.IAP程序
IAP程序仍然占用0x8000000~0x8003000的FLASH空間,IAP的作用,是在滿足IAP控制要求的情況下啟動IAP功能,否則,直接跳轉并執行用戶程序。啟動IAP功能,可以使用3個方式:
1.1.當用戶程序為空時,自動啟動IAP功能,做寫程序準備。
1.2.當用戶程序正常,但啟動時按下了特定的IAP按鍵時,啟動IAP功能。
1.3.用戶程序運行中,在某個特殊位置做了IAP升級標志,判讀標志后,啟動IAP功能。
現在的IAP程序,僅僅實現簡單的將內部FLASH虛擬為U盤功能即可。參見《5分鐘用STM32的內置Flash做一個超小U盤》。當然,這個小U盤缺少了文件系統,需要重新格式化才行。 格式化后,我們的超小U盤OK了,接下來就該進行下一步了,用戶程序。
2.用戶程序
2.1.配置
常規的用戶程序,對于我們的STM32F103C8系列,有64KFLASH,因此可供IAP程序使用的為0x8003000~0x800FFFF的FLASH空間。但我們這次的用戶程序,必須要保留下文件系統,因此修改為僅使用0x8008000~0x800FFFF。這其中的0X8003000~0X8008000空間,就是格式化時保存的文件系統。
51hei.png
為何修改為0x8008000而不是其它位置?因為系統告訴我們了,U盤容量=32K,因此反推:
(0x800ffff+1)-32K=0x8008000(STM32F103C8系列)。  
51hei.png
2.2.編譯用戶程序
51hei.png
主程序中不要忘記偏移。編譯完,趕緊試試吧。可是,我們該將哪個文件存入U盤啊?
51hei.png
這樣就會編譯結束后自動生成對應的***.BIN文件,這個BIN文件,就是我們需要的升級文件。 2.3.復制文件,升級了。復制文件后復位,用戶程序自動運行了。

這時,我們可以再次回到U盤狀態,刪除文件,甚至是格式化這個U盤,只要沒有新的文件進行覆蓋,我們的程序會始終正常運行的。這是FAT表文件系統的缺陷造成的,也是數據恢復的理論基礎。

STM32單片機源程序如下:
  1. #include "stm32f10x.h"
  2. #include "stdio.h"
  3. #include "hw_config.h"
  4. #include "usb_lib.h"
  5. #include "usb_pwr.h"

  6. extern uint16_t MAL_Init (uint8_t lun);


  7. typedef  void (*pFunction)(void);
  8. #define ApplicationAddress 0x0800A800  //計算跳轉地址512K-470K = 42K 即0xA800  ApplicationAddress = 0x8000000+0xA800 = 0x0800A800
  9. uint32_t JumpAddress;
  10. pFunction Jump_To_Application;

  11. int main(void)
  12. {
  13.         GPIO_InitTypeDef GPIO_InitStructure;        
  14.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);        
  15.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;   
  16.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  17.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  18.         GPIO_Init(GPIOB, &GPIO_InitStructure);
  19.         GPIO_ResetBits(GPIOB, GPIO_Pin_9);
  20.         
  21.         GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_8;
  22.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
  23.         GPIO_Init(GPIOB, &GPIO_InitStructure);
  24.         
  25.         
  26. //        if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8)==0)
  27. //        {
  28.                 Set_System();
  29.                 Set_USBClock();
  30.                 USB_Interrupts_Config();
  31.                 USB_Init();
  32.                 while (bDeviceState != CONFIGURED);
  33.                         while(1)
  34.         {
  35.                
  36.         }

  37. //        }

  38.                 __set_PRIMASK(1);
  39.                 if(((*(__IO uint32_t *) ApplicationAddress) & 0x2FFE0000) == 0x20000000)
  40.                                 {
  41.                                         JumpAddress = *(__IO uint32_t *) (ApplicationAddress + 4);
  42.                                         Jump_To_Application = (pFunction) JumpAddress;
  43.                                        
  44.                                         __set_MSP(*(__IO uint32_t *) ApplicationAddress);
  45.                                         Jump_To_Application();
  46.                                 }
  47.         while(1)
  48.         {
  49.                
  50.         }

  51. }        

復制代碼

Keil代碼下載: STM32F103RET6.7z (373.32 KB, 下載次數: 38)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:766804 發表于 2023-12-19 11:00 | 顯示全部樓層
512K-470K = 42K這個470K怎么來的?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
青青草国产成人99久久| 午夜精品在线观看| xf在线a精品一区二区视频网站| 精品久久久久久久久久久下田| 日韩免费影院| jizzjizz中文| 亚洲wwwwww| 欧美高清性xxxxhdvideosex| 91精品中文字幕一区二区三区| 91在线云播放| 亚洲精品四区| 国产精品亚洲欧美日韩一区在线| eeuss影院www在线观看| 欧美一级性视频| 久久久久亚洲av片无码下载蜜桃| www.日本久久| 玖玖精品在线视频| 国产三区精品| 欧美又大又粗又长| 中日韩美女免费视频网址在线观看 | 超碰超碰在线观看| 在线免费一区| 亚洲欧美成aⅴ人在线观看| 久久久久影视| 乱熟女高潮一区二区在线| 国产精品日韩在线一区| 在线国产精品视频| 欧美一级生活片| 亚洲精品国产精品乱码不99| av网站免费线看精品| 日韩精品亚洲专区| 天天色天天射综合网| 99精品国产高清一区二区麻豆| 第一福利在线视频| bbbbbbbbbbb在线视频| 成人高清免费| 黑人巨大40cm重口| 国产精品免费麻豆入口| 男人操女人免费网站| 99久久久久久久久久| 午夜精品久久久久久久99热影院| 国产黄色激情视频| 国产精品高潮呻吟视频| 久热99视频在线观看| 日韩不卡在线观看| 日韩精品中文字幕一区二区三区| 在线中文字幕不卡| 午夜精品久久久久久久久久久| 国产精品久99| 欧美国产成人精品| 国产喷白浆一区二区三区| av一区二区三区四区| 成人中文字幕在线| 国产精品一区二区免费不卡| 久久成人久久鬼色| 欧美成人milf| 精品国产成人| 精品国产一区二区三区久久久樱花| 精品欧美午夜寂寞影院| 国产精品2023| 国内露脸中年夫妇交换精品| 网站一区二区| 国产91精品入| 亚洲成人一品| 色88久久久久高潮综合影院| 99免费精品| 欧美午夜视频| 一区二区三区国产在线| 久久久天天操| 国产综合一区二区| 波多野结衣在线aⅴ中文字幕不卡| 成人avav影音| 中文字幕欧美国产| 一区二区三区精品在线观看| 亚洲愉拍自拍另类高清精品| 精品国产福利在线| 欧美日韩一区二区在线观看 | 麻豆9191精品国产| 日韩中文字幕av电影| 天堂久久一区二区三区| 国模大尺度一区二区三区| 国产高清在线精品| 久久综合精品国产一区二区三区 | 91av视频在线免费观看| 日韩免费av在线| 成人网在线观看| 国产乱码一区| 一区二区精品免费视频| 极品粉嫩国产18尤物| 一级黄色特级片| 久久久午夜精品福利内容| 精品亚洲aⅴ无码一区二区三区| 中文字幕在线观看2018| 99久久久久久久久| 色一情一乱一乱一区91av| 亚洲一| 成年女人免费又黄又爽视频| 香蕉视频在线观看网站| 久cao在线| 欧美激情福利| 欧美日韩一区二区综合 | www.com.av| 国产区一区二区三| 亚洲成人一二三区| www.91av视频.com| 欧美著名女优| 男女视频在线| 视频免费一区二区| 亚洲国产精品成人| 久久成人av少妇免费| 国产精品视频九色porn| 色94色欧美sute亚洲线路一久| 精品国产一区二区三区不卡| 九九热99久久久国产盗摄| 国产精品日本精品| 亚洲成人蜜桃| 中文字幕精品一区二区三区在线| 亚洲午夜久久久久久久国产| 中文在线观看免费视频| 私库av在线播放| 99久久精品国产一区色| 一个人在线观看免费视频www | 国产欧美日韩精品专区| 日韩资源av在线| 亚洲男人天堂色| 亚洲激情图片网| 91精品在线视频观看| 国产精品自产拍在线观看2019| 欧美艹逼视频| 精品众筹模特私拍视频| 欧美日韩中文字幕一区二区三区 | 中文字幕一区二区三区精品| 亚洲xxxx天美| 在线成人私人影院| a在线视频v视频| 日韩美脚连裤袜丝袜在线| 视频一区在线播放| 亚洲欧美日韩系列| 亚洲精品美女在线观看播放| 日本一本a高清免费不卡| 一区二区在线观看网站| 91丨porny丨对白| 亚洲一区中文字幕在线| 草莓视频性福宝| 欧美韩日亚洲| 日韩精品dvd| av一区二区三区四区| 欧美色图片你懂的| 亚洲**2019国产| 亚洲欧美日韩综合一区| 91丝袜在线观看| 国产精品熟女久久久久久| hd100%videos日本| 小草在线视频免费播放| 91成人看片| 中文字幕精品在线不卡| 亚洲福利影片在线| 成人在线免费观看视视频| 国产午夜福利视频在线观看| 五月天丁香激情| 鲁啊鲁视频在线精品| 性开放的欧美大片| 九九视频精品全部免费播放| 国产91丝袜在线观看| 欧美色老头old∨ideo| 日产精品99久久久久久| 久色视频在线播放| 日韩免费黄色片| 樱花草www在线观看| 黄色在线观看视频网站| 欧美福利网址| 亚洲另类一区二区| 欧美成人精品一区二区三区| 一区高清视频| 欧美成人精品激情在线视频| 星空无限传媒在线| 日韩大片欧美大片| 蜜臀精品一区二区三区在线观看| 欧美主播一区二区三区美女| 国产精品吹潮在线观看| 最新天堂在线视频| 99久久亚洲精品日本无码 | 久久久精品五月天| 欧美日韩国产精品| 国产精品久久久久久久一区探花| 午夜激情福利在线| 国产乱码久久久| 欧美老女人性开放| 欧美电影《睫毛膏》| 亚洲日本乱码在线观看| 久久久久久免费网| 亚洲成人黄色在线| 欧美日韩国产精品一卡| 99re6热在线精品视频| 在线观看色视频| 精品欧美日韩精品| 日韩一区二区三区免费播放| 国产精品伦理在线| 欧美劲爆第一页| 亚洲色精品三区二区一区| 91在线视频国产| 91高清在线视频| 国产精品激情| 在线观看日韩一区| 波多野结衣久草一区| 蜜桃传媒一区二区亚洲av| 国产剧情麻豆剧果冻传媒视频免费| 天堂中文av在线资源库| 国产原创一区二区| 亚洲视频777| 成人性免费视频| 国产女人18毛片水18精| a毛片在线看免费观看| 日韩电影在线看| 亚洲精品自产拍| 男人插女人视频在线观看| 国产精品高潮呻吟AV无码| 欧美精品videos另类| 国产精品综合色区在线观看| 日韩一卡二卡三卡四卡| 亚洲成人网上| 亚洲欧美一二三区| 成全电影播放在线观看国语| 亚洲黄色视屏| 精品国产欧美一区二区| 300部国产真实乱| 99久久国产免费| 蜜桃av.网站在线观看| 成人永久aaa| 午夜精品久久久久久久久久久久久 | 欧美激情一区二区三区免费观看| 夜色资源站国产www在线视频| 午夜精品剧场| 日韩免费视频线观看| 日本精品免费视频| www.av网站| 亚洲成人一区在线观看| 91视视频在线观看入口直接观看www | av在线导航| 国产精品自拍在线| 久久精品国产成人| 亚洲区 欧美区| 操碰免费视频| 91精品观看| 亚洲国产精品免费| 精品久久久久av| 四虎永久成年免费影院| 中文字幕日韩在线| 岛国av午夜精品| 手机成人在线| 亚洲精品国产手机| 91精品国产一区二区在线观看| 亚洲免费在线看| 国产伦精品一区二区三区在线| 日韩欧美大片在线观看| 97精品人妻一区二区三区| 黄网页免费在线观看| 粉嫩在线一区二区三区视频| 久久免费视频这里只有精品| 在线免费观看日韩av| 日本最黄视频| 久久看片网站| 欧美激情伊人电影| 国产三级短视频| 第三区美女视频在线| 国产成人在线色| 国产精品久久久久久av福利| 欧美黄色免费看| 成人av黄色| 久久久久99精品一区| 99久久伊人精品影院| 在线观看日韩一区二区| 欧美日韩视频免费看| 欧美视频13p| av免费观看大全| 国产精品冒白浆免费视频 | 欧美一区二区三区免费在线看| 成人性生活视频免费看| 国产成人香蕉在线视频fuz| 婷婷激情综合| 色偷偷综合社区| 成人一级片免费看| 18+视频在线观看| 亚洲少妇30p| 中文字幕剧情在线观看一区| 色就是色欧美色图| 亚洲女同另类| 久久综合九色九九| 在线免费看av网站| cao在线视频| 婷婷激情综合网| 欧美色图另类小说| 免费男女羞羞的视频网站中文版 | 久久视频在线观看免费| 欧美一区二区三区粗大| 中文字幕资源网在线观看| 亚洲日本成人在线观看| bt天堂新版中文在线地址| 菠萝蜜视频网站入口| 日本视频在线一区| 91精品久久久久久久久久另类| 在线观看毛片网站| 精品福利一区| 亚洲人成亚洲人成在线观看| 国产探花视频在线播放| 国产传媒在线| 91福利视频在线| 亚洲精品永久视频| 青青草视频在线免费观看| 欧美激情中文字幕一区二区| 欧美aaa在线观看| 美女被内谢流白浆高视频| 蜜臀久久久久久久| 古典武侠综合av第一页| luxu259在线中文字幕| 国模大胆一区二区三区| 国产精品h片在线播放| 国产精品久久久久久免费免熟| 亚洲8888| 色综合天天综合网国产成人网 | 成人av福利| 欧美日韩中国免费专区在线看| 69久久久久久| 成年人视频免费在线观看| 亚洲永久免费av| 亚洲这里只有精品| 亚乱亚乱亚洲乱妇| 欧美视频在线免费看| 少妇高潮一69aⅹ| 成人欧美在线| 欧美少妇bbb| 97人妻精品一区二区免费| 韩国主播福利视频一区二区三区| 91精品国产一区二区| 中文字幕第4页| 成人午夜亚洲| 亚洲欧洲自拍偷拍| 日韩高清精品免费观看| 任你躁在线精品免费| 欧美色男人天堂| 丰满岳乱妇一区二区| bbw在线视频| 亚洲激情国产精品| 日本少妇久久久| 制服丝袜日韩| 国产精品免费视频观看| 777av视频| 国产三级在线观看| 欧美中文字幕一二三区视频| 免费成人深夜夜行p站| 日韩av福利| 一区二区三区视频免费| 成人毛片一区二区三区| 91精品国偷自产在线电影| 国产主播欧美精品| 国产精品伦一区二区三区级视频频 | 香蕉成人av| 伊人久久久久久久久久| 亚洲精品一区二区二区| 国产一区清纯| 成人18视频| 天天爱天天做色综合| 亚洲色图欧美在线| 国产69视频在线观看| 亚洲青青久久| 久久99久久99精品中文字幕| 人妻与黑人一区二区三区| 日韩福利电影在线观看| 亚洲欧美一二三| 国产在线观看免费网站| 欧美一区二视频| 欧美另类一区二区| 欧美激情日韩| 欧洲久久久久久| 天堂在线免费av| 日韩一区二区三区电影在线观看 | 制服丝袜中文字幕亚洲| 久久久久久久久艹| 久久电影院7| 国产精品一区二区欧美| 快色在线观看| 欧美在线色视频| 国产主播在线播放| 午夜性色一区二区三区免费视频| 久久久亚洲综合网站| 在线成人一区| 日韩欧美一区在线观看| 亚洲精品国产精品乱码视色| 视频一区中文字幕国产| 成人免费播放器| 深夜av在线| 久久久最新网址| 国产高清大尺度一区二区不卡| 国产精品福利一区二区三区| 无码熟妇人妻av| 全球成人免费直播| 欧美美乳视频网站在线观看| 免费在线超碰| 亚洲精品影视在线观看| 色欲久久久天天天综合网|