之前做的一個(gè)小項(xiàng)目,因?yàn)閯傞_(kāi)始沒(méi)有考慮到以后會(huì)經(jīng)常升級(jí),而每次升級(jí)都要旋開(kāi)4顆螺絲拆殼,然后燒程序,再裝殼,如果只要更新幾個(gè)倒沒(méi)啥感覺(jué),但是一下更新幾百個(gè),那工作量。。。。,正好板子上有SD卡,就想著寫個(gè)Bootloader程序,通過(guò)讀取SD卡中的Bin文件進(jìn)行IAP升級(jí),這樣可以大大簡(jiǎn)化以后的升級(jí)。IAP升級(jí)原理就不多說(shuō)了,網(wǎng)上相關(guān)的資料和帖子一大堆,這里簡(jiǎn)單介紹我做的IAP方案,歡迎大家批評(píng)指正!
Bootloader程序設(shè)計(jì)
bootloader程序的設(shè)計(jì)思路很簡(jiǎn)單,流程圖如下:
初始化程序就不介紹了,比較簡(jiǎn)單。主要介紹下Bin文件檢測(cè)以及IAP過(guò)程。我將IAP過(guò)程分為5個(gè)步驟,如下:
Step1:檢查是否存在升級(jí)文件,若存在,打開(kāi)后跳至Step2,若不存在或者打開(kāi)失敗,跳至Step5
Step2:擦除App程序?qū)?yīng)的扇區(qū),擦除成功后跳至Step3,若擦除失敗,跳至Step5
Step3:使用f_read()函數(shù)讀取Bin文件,每次讀取2048個(gè)字節(jié),并寫入Flash。當(dāng)文件全部被寫入flash后跳至Step4,若中間出現(xiàn)寫入錯(cuò)誤,跳至Step5
Step4:檢查棧頂?shù)刂罚D(zhuǎn)至App程序。若棧頂?shù)刂贩欠?,跳至Step5
Step5:此步表示本次升級(jí)失敗,死循環(huán),同時(shí)LED提示升級(jí)失敗,等待重新上電
查找升級(jí)文件時(shí)我固定從Update文件夾查找,所以只要將Bin文件拷貝至Update文件夾就行了。
五個(gè)步驟的轉(zhuǎn)換是通過(guò)switch函數(shù)實(shí)現(xiàn)的。代碼如下:
while(1)
{
switch(iap_step)
{
/* Step1:檢查是否存在升級(jí)文件 */
case 1:
{
/* 查找升級(jí)文件 */
result = f_findfirst(&dj, &fno, "0:/Update", "FDR_update*.bin");
/* 存在升級(jí)文件 */
if(result==FR_OK && fno.fname[0])
{
/* 獲取文件名字符串 */
#if _USE_LFN
fn_str = *fno.lfname ? fno.lfname : fno.fname;
#else
fn_str = fno.fname;
#endif
/* 得到完整的文件名路徑 */
sprintf(fname_path,"/Update/%s",fn_str);
/* 打開(kāi)升級(jí)文件 */
result = f_open(&file_fdr,fname_path,FA_OPEN_EXISTING|FA_READ);
if(result==FR_OK)
{
/* 打開(kāi)成功,準(zhǔn)備升級(jí) */
iap_step = 2;
}
else
{
/* 打開(kāi)失敗 */
f_close(&file_fdr);
f_closedir(&dj);
iap_step = 5;
}
}
else
{
/* 不存在升級(jí)文件,直接跳轉(zhuǎn) */
f_closedir(&dj);
iap_step = 4;
}
break;
}
/* Step2:存在升級(jí)文件,先擦除扇區(qū) */
case 2:
{
FLASH_Unlock();
res = IAP_FLASH_Erase(APPLICATION_ADDRESS);
FLASH_Lock();
if( res )
{
iap_step = 3;
}
else
{
f_close(&file_fdr);
f_closedir(&dj);
iap_step = 5;
}
break;
}
/* Step3:扇區(qū)擦除成功,準(zhǔn)備依次讀取并寫入 */
case 3:
{
memset(appbuf,0xFF,2052);
f_read(&file_fdr,appbuf,2048,&br);
FLASH_Unlock();
res = IAP_FLASH_Write((u32*)appbuf,(u16)ceil(br/4.0f));
FLASH_Lock();
Toggle_LED_AP();
if(res == 0)
{
f_close(&file_fdr);
f_closedir(&dj);
iap_step = 5;
}
else
{
/* 文件讀完了 */
if(br<2048)
{
f_close(&file_fdr);
f_closedir(&dj);
f_unlink(fname_path);
iap_step = 4;
}
}
break;
}
/* Step4:跳轉(zhuǎn)至App程序 */
case 4:
{
上一篇:stm32f2 從 SD卡里面的讀取程序的bootloader
下一篇:stm32程序升級(jí)SD卡讀取hex文件寫入flash
推薦閱讀
史海拾趣
由于AXSEM公司在電子行業(yè)的具體發(fā)展故事細(xì)節(jié)可能涉及到公司內(nèi)部資料,并且不易公開(kāi)獲取,因此難以提供五個(gè)具體的故事。不過(guò),可以依據(jù)公開(kāi)信息,嘗試概述AXSEM公司的發(fā)展概況和可能的發(fā)展故事線索。
故事一:創(chuàng)立與早期發(fā)展
AXSEM公司成立于2000年,自創(chuàng)立之初,就專注于無(wú)線射頻技術(shù)的研發(fā)與創(chuàng)新。在創(chuàng)始人及團(tuán)隊(duì)的共同努力下,公司成功開(kāi)發(fā)了多個(gè)高容量通信射頻集成電路,如SigFox、EnOcean等,這些技術(shù)在當(dāng)時(shí)的物聯(lián)網(wǎng)和無(wú)線通信領(lǐng)域具有前瞻性。公司憑借其技術(shù)優(yōu)勢(shì),逐步在市場(chǎng)中樹(shù)立了良好的口碑,為后續(xù)的發(fā)展奠定了堅(jiān)實(shí)的基礎(chǔ)。
故事二:技術(shù)突破與市場(chǎng)拓展
隨著無(wú)線通信技術(shù)的快速發(fā)展,AXSEM公司不斷突破技術(shù)瓶頸,推出了一系列具有創(chuàng)新性的產(chǎn)品。這些產(chǎn)品不僅支持物聯(lián)網(wǎng)、自動(dòng)抄表、家庭自動(dòng)化等領(lǐng)域的應(yīng)用,還廣泛應(yīng)用于傳感器網(wǎng)絡(luò)和衛(wèi)星通信市場(chǎng)。公司憑借這些產(chǎn)品,成功拓展了市場(chǎng)份額,實(shí)現(xiàn)了業(yè)務(wù)的快速增長(zhǎng)。
故事三:戰(zhàn)略合作與資源整合
為了進(jìn)一步提升技術(shù)實(shí)力和市場(chǎng)競(jìng)爭(zhēng)力,AXSEM公司積極尋求與其他企業(yè)的戰(zhàn)略合作。通過(guò)與其他知名企業(yè)的合作,公司成功整合了資源,優(yōu)化了產(chǎn)品線,提高了生產(chǎn)效率。同時(shí),這些合作也為公司帶來(lái)了更多的市場(chǎng)機(jī)會(huì),推動(dòng)了公司的持續(xù)發(fā)展。
故事四:國(guó)際化發(fā)展與品牌提升
隨著業(yè)務(wù)的不斷拓展,AXSEM公司開(kāi)始將目光投向國(guó)際市場(chǎng)。公司積極參與國(guó)際展覽和交流活動(dòng),與全球客戶建立了廣泛的聯(lián)系。通過(guò)不斷提升產(chǎn)品質(zhì)量和服務(wù)水平,公司的品牌知名度和美譽(yù)度逐漸提升,為全球客戶提供了更加優(yōu)質(zhì)的產(chǎn)品和服務(wù)。
故事五:未來(lái)展望與創(chuàng)新驅(qū)動(dòng)
面對(duì)未來(lái)電子行業(yè)的快速發(fā)展和變革,AXSEM公司將繼續(xù)堅(jiān)持創(chuàng)新驅(qū)動(dòng)的發(fā)展戰(zhàn)略。公司將加大研發(fā)投入,不斷推出具有創(chuàng)新性和競(jìng)爭(zhēng)力的新產(chǎn)品。同時(shí),公司還將積極拓展新的應(yīng)用領(lǐng)域和市場(chǎng),為全球客戶提供更加全面和高效的解決方案。
請(qǐng)注意,以上僅為基于公開(kāi)信息的AXSEM公司發(fā)展故事的概述,并未涉及具體的事實(shí)細(xì)節(jié)。如需了解更多關(guān)于AXSEM公司的故事,建議查閱公司官方網(wǎng)站、行業(yè)報(bào)告或相關(guān)新聞報(bào)道。
隨著全球環(huán)保意識(shí)的提高,電子行業(yè)對(duì)環(huán)保的要求也越來(lái)越高。Aplus Flash Technology Inc公司積極響應(yīng)環(huán)保號(hào)召,將環(huán)保理念融入產(chǎn)品設(shè)計(jì)和生產(chǎn)過(guò)程中。公司研發(fā)出了一款低能耗、環(huán)保型的閃存芯片,不僅降低了產(chǎn)品的能耗和碳排放,還提高了產(chǎn)品的可回收利用率。這一創(chuàng)新舉措得到了消費(fèi)者的廣泛認(rèn)可和支持,也為公司在市場(chǎng)上樹(shù)立了良好的環(huán)保形象。
隨著公司規(guī)模的不斷擴(kuò)大和業(yè)務(wù)范圍的不斷拓展,德旭電子開(kāi)始注重履行社會(huì)責(zé)任和推動(dòng)可持續(xù)發(fā)展。公司積極參與公益事業(yè)和社會(huì)活動(dòng)回饋社會(huì)。
在環(huán)保方面德旭電子堅(jiān)持綠色生產(chǎn)和低碳發(fā)展理念積極推廣環(huán)保技術(shù)和設(shè)備降低生產(chǎn)過(guò)程中的能耗和排放。同時(shí)公司還注重產(chǎn)品的環(huán)保性能研發(fā)和生產(chǎn)符合環(huán)保標(biāo)準(zhǔn)的產(chǎn)品滿足客戶的環(huán)保需求。
在社會(huì)責(zé)任方面德旭電子關(guān)注員工福利和職業(yè)發(fā)展為員工提供良好的工作環(huán)境和培訓(xùn)機(jī)會(huì)促進(jìn)員工的成長(zhǎng)和發(fā)展。此外公司還積極參與社會(huì)公益事業(yè)和慈善活動(dòng)為社會(huì)做出積極貢獻(xiàn)。
通過(guò)這些舉措德旭電子在履行社會(huì)責(zé)任和推動(dòng)可持續(xù)發(fā)展方面取得了顯著成效贏得了社會(huì)的廣泛認(rèn)可和贊譽(yù)。
人才是企業(yè)發(fā)展的核心驅(qū)動(dòng)力。Deutsch公司非常重視人才引進(jìn)和培養(yǎng)工作。公司積極招聘具有豐富經(jīng)驗(yàn)和專業(yè)技能的人才,并為他們提供廣闊的發(fā)展空間和良好的職業(yè)前景。同時(shí),公司還注重內(nèi)部人才的培養(yǎng)和晉升,通過(guò)培訓(xùn)、交流等方式提升員工的綜合素質(zhì)和業(yè)務(wù)能力。這些措施使得Deutsch公司擁有一支高素質(zhì)、高效率的團(tuán)隊(duì),為公司的持續(xù)發(fā)展提供了有力保障。
在競(jìng)爭(zhēng)激烈的電子行業(yè)中,品質(zhì)控制和品牌建設(shè)至關(guān)重要。Deutsch公司深知這一點(diǎn),因此始終將品質(zhì)控制和品牌建設(shè)作為公司的重要任務(wù)。公司建立了嚴(yán)格的質(zhì)量管理體系,確保產(chǎn)品的每一個(gè)細(xì)節(jié)都符合高標(biāo)準(zhǔn)。同時(shí),通過(guò)精心策劃的品牌推廣活動(dòng),Deutsch公司的品牌形象逐漸深入人心。這些努力不僅提升了公司的市場(chǎng)地位,也增強(qiáng)了客戶對(duì)公司的忠誠(chéng)度。
隨著公司規(guī)模的擴(kuò)大,ATO SOLUTION公司開(kāi)始實(shí)施全球化戰(zhàn)略布局。公司先后在多個(gè)國(guó)家和地區(qū)設(shè)立了研發(fā)中心和生產(chǎn)基地,充分利用當(dāng)?shù)刭Y源和市場(chǎng)優(yōu)勢(shì),提升整體競(jìng)爭(zhēng)力。同時(shí),公司還加強(qiáng)了與國(guó)際知名企業(yè)的合作,共同推動(dòng)電子行業(yè)的發(fā)展和創(chuàng)新。
用CMOS技術(shù)實(shí)現(xiàn)高速模數(shù)轉(zhuǎn)換器 通信用接收器的發(fā)展趨勢(shì)是必需在信號(hào)剛一進(jìn)入接收器信號(hào)通道時(shí)就進(jìn)行取樣,并配備有精確的測(cè)試儀,而要達(dá)到這個(gè)目標(biāo)就要依賴超高速模擬數(shù)字轉(zhuǎn)換器來(lái)實(shí)現(xiàn)。美國(guó)國(guó)家半導(dǎo)體首推的 ADC081000 芯片是一款模擬輸入帶寬高達(dá) 1.8 GHz 的 8 位 1GSPS ...… 查看全部問(wèn)答∨ |
電量隔離放大器 順源科技產(chǎn)品資料下載索引2009-06-3 順源科技產(chǎn)品資料索引順源科技常用產(chǎn)品資料索引 (1) 一進(jìn)二出、二進(jìn)二出 模擬信號(hào)磁電隔離變送器。 一進(jìn)二出模擬信號(hào)磁電隔離變送器:DIN 1X2 ISO EM系列產(chǎn)品具有全量程范圍內(nèi)極高的線性度( ...… 查看全部問(wèn)答∨ |
我用功放管3886驅(qū)動(dòng)一對(duì)三極管對(duì)管做擴(kuò)流,然后三極管的輸出再驅(qū)動(dòng)變壓器來(lái)做最終輸出的,但是PNP的三極管老實(shí)被擊穿,也加了一些保護(hù)還是沒(méi)用,這個(gè)三極管幾百一個(gè),現(xiàn)在搞的都不趕試,跪求高手幫忙分析下,?!? 查看全部問(wèn)答∨ |
請(qǐng)問(wèn)硬件維護(hù)工程師如何評(píng)定初級(jí)、中級(jí)和高級(jí) rt。請(qǐng)問(wèn)有相關(guān)的認(rèn)證考試嗎? 軟件方面有國(guó)家軟考,硬件方面的有嗎?… 查看全部問(wèn)答∨ |
這些 怎么定義 state_machine rcvdat retval 這些 怎么定義 state_machine rcvdat retval 是串口通信解析的 if(state_machine == 0) // 協(xié) ...… 查看全部問(wèn)答∨ |
小弟剛剛新建了一個(gè)BLOG,歡迎各位朋友去踩踩 pcboy.3u.cn 在5月23日以前去注冊(cè)的朋友還可以在我的BLOG里發(fā)表技術(shù)日志或技術(shù)文章 … 查看全部問(wèn)答∨ |
在調(diào)皮男生的童年記憶當(dāng)中,絕對(duì)不會(huì)少了彈弓這一好伙伴,它可是戰(zhàn)爭(zhēng)游戲中不可或缺的高殺傷力武器。一家柏林公司則將這一經(jīng)典玩具進(jìn)行改裝,讓它附加上高科技組件,變身成為一款獨(dú)特的訊息發(fā)射端。只要在電子彈弓的輸入按鈕上編寫好訊息,然后拉動(dòng) ...… 查看全部問(wèn)答∨ |
為什么再XP下應(yīng)用正常的STM32做的USB鍵盤,到win2000下不能識(shí)別?系統(tǒng)提示設(shè)備不能啟用,應(yīng)該是沒(méi)有正確裝載HID驅(qū)動(dòng)。此機(jī)器可以正常使用買來(lái)的USB鍵盤。后用BUSHOUND抓包??吹皆蚴窃O(shè)備描述符發(fā)送不完整。但是在XP下沒(méi)有任何問(wèn)題,整個(gè)描述 ...… 查看全部問(wèn)答∨ |
關(guān)于STM32F103的GPIO等幾個(gè)問(wèn)題 最近開(kāi)始搞stm32開(kāi)發(fā)項(xiàng)目,有幾個(gè)問(wèn)題想請(qǐng)教一下: 1.GPIO的設(shè)置,輸入和輸出怎么切換啊?比如在做模擬I2C時(shí),SDA腳作為數(shù)據(jù)口,有輸入也有輸出的時(shí)候,怎么切換的,我網(wǎng)上看了一個(gè)stm32的例程,好像沒(méi)有切換輸入輸出模式,直接 ...… 查看全部問(wèn)答∨ |
我做了個(gè)板通過(guò)BOOT SPI 16位模式加載程序有幾個(gè)問(wèn)題想請(qǐng)教 我做了個(gè)板通過(guò)BOOT SPI 16位模式加載程序有幾個(gè)問(wèn)題想請(qǐng)教 1.如何把我寫的程序轉(zhuǎn)換為數(shù)據(jù)格式,是不是通過(guò)那個(gè)HEX55?還是直接SAVE DATA,如果用后者 應(yīng)該從哪里開(kāi)始SAVE 2.BOOT手冊(cè)里說(shuō)CLKX的頻率=244* DSPCLK(是不是就是CLKIN的頻率) 如果是的 ...… 查看全部問(wèn)答∨ |
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦
- 匠芯創(chuàng)推出面向具身智能高性能實(shí)時(shí)處理器M7000
- 基于HW2181B的航模無(wú)線遙控通信系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 應(yīng)對(duì)機(jī)器人“四高”,極海推出全球首款雙核Cortex-M52 MCU G32R501
- 非道路移動(dòng)機(jī)械透射式煙度計(jì)研究與實(shí)現(xiàn)
- 基于STM32F103的角磨機(jī)開(kāi)關(guān)磁阻電機(jī)控制器的設(shè)計(jì)
- 基于Cortex-M0智能水溫監(jiān)控系統(tǒng)的優(yōu)化
- STM32 printf重定向(串口輸出)
- 基于STM32H743的仿真轉(zhuǎn)臺(tái)控制器設(shè)計(jì)
- 一種基于STM32的PID直流電機(jī)控制系統(tǒng)
- 思特威推出新款全局快門圖像傳感器,賦能具身智能精準(zhǔn)感知
- 汽車安全技術(shù)全面解析#主動(dòng)安全、被動(dòng)安全和ADAS
- 電源入口處防反接電路-汽車電子硬件電路設(shè)計(jì)
- 性能達(dá)競(jìng)品10倍!Arbe助力經(jīng)緯恒潤(rùn)推出量產(chǎn)級(jí)成像雷達(dá)系統(tǒng)LRR615
- 匠芯創(chuàng)推出面向具身智能高性能實(shí)時(shí)處理器M7000
- 特斯拉AD/ADAS緊急制動(dòng)安全分析案例
- 車載無(wú)線充電普及率首超50%,兩家國(guó)產(chǎn)方案商殺入全球前五
- 自動(dòng)駕駛仿真進(jìn)入“標(biāo)準(zhǔn)時(shí)代”:aiSim全面對(duì)接ASAM OpenX
- 輔助駕駛迎來(lái)供應(yīng)鏈黃金時(shí)代,車企需要「六邊形戰(zhàn)士」
- 通過(guò)高能效低成本的邊緣計(jì)算,愛(ài)芯元智讓AI更加普惠
- 試用Vishay新型“IHLP磁芯損耗計(jì)算器”,搶樓贏好禮
- LPC4370重磅來(lái)襲 有獎(jiǎng)問(wèn)答贏好禮!
- 電子工程師,如何更好地?fù)肀aN?參與問(wèn)卷有好禮!
- 報(bào)名贏京東卡 | 國(guó)產(chǎn)FPGA安路科技2024線上新品發(fā)布會(huì)
- 兆易GD32450I-EVAL免費(fèi)測(cè)評(píng)試用
- 追更有驚喜:解救被FSM折磨過(guò)的你,justd0解析LSM6DSOX有限狀態(tài)機(jī)官方例程
- 電路圖站2.0版上線,公開(kāi)征集網(wǎng)友建議,填寫調(diào)查問(wèn)卷贏積分!
- 全球首款Cortex-M23內(nèi)核物聯(lián)網(wǎng)芯片SAML10和SAM L11系列 闖關(guān)獲取SAML10/SAML11法寶,拆除電子界安全危機(jī),贏好禮!
- 邀請(qǐng)好友體驗(yàn)WEBENCH,禮品豐厚你有他也有!
- 你想要的都有 諾基亞X6信息匯總
- 大聯(lián)大友尚集團(tuán)推出無(wú)線煙霧報(bào)警器解決方案
- 傳亞馬遜絕密項(xiàng)目揭秘 家用機(jī)器人或明年面市
- 家電業(yè)再掀海外并購(gòu) 三家中企盯上一家公司
- LG很郁悶:為啥申請(qǐng)不了QLED商標(biāo)?三星在一邊偷笑
- 2018年,VoLTE時(shí)代姍姍來(lái)遲
- 龐大用戶基數(shù)掣肘2G退網(wǎng) 物聯(lián)網(wǎng)設(shè)備遷移成本更高
- 傳谷歌洽談收購(gòu)諾基亞機(jī)載WiFi技術(shù) 加強(qiáng)娛樂(lè)業(yè)務(wù)
- 寬帶價(jià)格3年降90% 這次“提速降費(fèi)”有啥亮點(diǎn)?
- 亞太地區(qū)就26GHz用于5G系統(tǒng)達(dá)成初步共識(shí)