0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深入探討FLASH被非法改寫的問題

GReq_mcu168 ? 來源:未知 ? 作者:胡薇 ? 2018-09-29 11:51 ? 次閱讀

問題描述:某STM32客戶反饋, 當(dāng)STM32F407V芯片頻繁的正常通斷電的時(shí)候,F(xiàn)LASH 會(huì)被非法改寫,出現(xiàn)各種各樣的異常(整片被擦除、中斷向量表被改寫、寫保護(hù)被清除等等)。

經(jīng)過與跟客戶溝通了解到 :

?他們是延續(xù)之前的項(xiàng)目,進(jìn)行的一些軟硬件簡(jiǎn)單修改。之前的項(xiàng)目沒有出現(xiàn)過類似的問題。

?確認(rèn)通斷電的時(shí)間是足夠,即斷電后所有的VDD都回到0;上電的時(shí)序也正常。

?原理圖參考了ST相關(guān)開發(fā)板的參考設(shè)計(jì)。

?測(cè)量工作時(shí)的電壓,除了發(fā)覺上電時(shí)會(huì)有一些抖動(dòng)外,其它一切正常。嘗試讓他們改善上電電路,去掉這一抖動(dòng),再次實(shí)驗(yàn),仍然出現(xiàn)類似的問題。

到這里似乎跟硬件沒關(guān)聯(lián)了, 接著對(duì)客戶代碼進(jìn)行刪減又做了如下實(shí)驗(yàn):

1,去掉APP 部分代碼,僅僅留下IAP代碼。做相同的實(shí)驗(yàn),問題再現(xiàn)。

2,進(jìn)一步刪減程序,去掉程序中所有跟flash以及OPTION BYTE 相關(guān)的部分,做相同的

實(shí)驗(yàn),問題依舊。

3,沒招,再刪,最后僅僅留下下面程序:

客戶反應(yīng)只要調(diào)用了delay_init函數(shù)就會(huì)出問題,不調(diào)用就不會(huì)出問題(僅僅做了一天的實(shí)驗(yàn))。到這里似乎跟軟件有關(guān)系了,我們進(jìn)一步分析發(fā)現(xiàn)他們改寫了我們的systick的config函數(shù),那么我就做下一個(gè)實(shí)驗(yàn)。

1,改為標(biāo)準(zhǔn)庫(kù)中的systick例程,去掉寫保護(hù),加一個(gè)GPIO定時(shí)翻轉(zhuǎn)程序。同時(shí)在燒錄之后,加上寫保護(hù),做相同的實(shí)驗(yàn),問題再現(xiàn)。

2,改為標(biāo)準(zhǔn)庫(kù)中的systick例程,去掉寫保護(hù),加一個(gè)GPIO定時(shí)翻轉(zhuǎn)。同時(shí)在燒錄之后,加上寫保護(hù),做相同的實(shí)驗(yàn),問題還是再現(xiàn)。

3,到這里我們有點(diǎn)懷疑是芯片真的有損傷了。我們又用cubemx生成了一個(gè)GPIO翻轉(zhuǎn)和systick的延時(shí),做相同的實(shí)驗(yàn),問題照舊。

4,到此,我們一方面請(qǐng)芯片設(shè)計(jì)人員做進(jìn)一步確認(rèn),看看芯片是否真的壞了。同時(shí),我們抱著懷疑一切的態(tài)度,請(qǐng)客戶的硬件工程師再次確認(rèn)他們的硬件和原理圖的一致性,我們懷疑他們的硬件是否有裝錯(cuò)的元器件。主要集中在MCU周邊。最后他們的工程師反饋,STM32的PDR_ON腳,板子上裝的元器件跟原理圖不一致。他們把R47和R48都裝了,那么相當(dāng)于在PDR_ON上是一個(gè)0.6v的電壓,也就是關(guān)斷了MCU內(nèi)部復(fù)位。

真是山窮水盡疑無路,柳暗花明又一村,看來問題應(yīng)該跟內(nèi)部復(fù)位有關(guān)。

查看STM32F407數(shù)據(jù)手冊(cè),可以看到相關(guān)信息。

從上面規(guī)格書來看,STM32F407V的內(nèi)部復(fù)位電路可以選擇性開啟或關(guān)閉,如果選擇關(guān)閉mcu內(nèi)部的復(fù)位電路,需要在外部接一個(gè)復(fù)位監(jiān)測(cè)電路保證VDD達(dá)到正常工作電壓之前一直使MCU處于復(fù)位狀態(tài)。而這里,客戶本意并不想關(guān)閉內(nèi)部復(fù)位,外部也沒有相應(yīng)的電源監(jiān)測(cè)復(fù)位電路。既然這樣,根據(jù)手冊(cè)描述,PDR_ON腳接到VDD即可。具體到這里,去掉R48這個(gè)1k歐姆的電阻。重做實(shí)驗(yàn)驗(yàn)證,異常消失。

結(jié)論

其實(shí)之前也碰到過另外西安客戶發(fā)生過頻繁上電不工作的情況。因他們是使用了舊的數(shù)據(jù)手冊(cè),沒有把PDR_ON腳拉到VDD 所致。

對(duì)于ST MCU來說,這個(gè)PDR_ON引腳有的封裝是被引出來了,有的封裝沒有引出,如果沒有引出的是默認(rèn)使能內(nèi)部復(fù)位功能,如果引出的話,大家也要當(dāng)心有的型號(hào)是拉低使能內(nèi)部復(fù)位;有的是拉高使能內(nèi)部復(fù)位,設(shè)計(jì)和使用時(shí)注意這點(diǎn)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1609

    瀏覽量

    147567
  • STM32
    +關(guān)注

    關(guān)注

    2263

    文章

    10847

    瀏覽量

    353779

原文標(biāo)題:FLASH被異常改寫的問題分享

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    深入探討電容的種類和作用

    深入探討電容的種類和作用     你知道顯卡為什么會(huì)花屏嗎?
    發(fā)表于 11-27 15:00 ?1.5w次閱讀

    STM32上下電內(nèi)部flash改寫的原因?

    基于STM32F405系列一個(gè)64pin MCU,在使用過程中,整機(jī)掉電更換另一個(gè)部件,再上電后發(fā)現(xiàn)這個(gè)產(chǎn)品不工作了。發(fā)回廠家發(fā)現(xiàn)STM32內(nèi)部flash數(shù)據(jù)改寫了,前幾行改成了0
    發(fā)表于 03-25 08:24

    深入探討DFM在PCB設(shè)計(jì)中的注意要點(diǎn)

    深入探討DFM在PCB設(shè)計(jì)中的注意要點(diǎn),大家說自己的經(jīng)驗(yàn),交流交流,學(xué)習(xí)學(xué)習(xí)。
    發(fā)表于 10-24 15:15

    stm32 uart硬件實(shí)現(xiàn)及深入探討(單片機(jī)通信學(xué)習(xí)連載4)

    大家上午好!今天邀請(qǐng)了張角老師,來為大家深入講解stm32 uart,視頻為一個(gè)系列,本次為第四期內(nèi)容,請(qǐng)持續(xù)關(guān)注,會(huì)持續(xù)進(jìn)行更新!前期回顧:第三期:stm32 uart硬件實(shí)現(xiàn)及深入探討(單片機(jī)
    發(fā)表于 06-29 11:10

    【視頻】 stm32 uart硬件實(shí)現(xiàn)及深入探討3

    大家上午好!今天來為大家深入講解STM32 uart,視頻為一個(gè)系列,請(qǐng)持續(xù)關(guān)注,會(huì)持續(xù)進(jìn)行更新!有問題留言交流!上期回顧:stm32 uart硬件實(shí)現(xiàn)及深入探討一鍵分析設(shè)計(jì)隱患,首款國(guó)產(chǎn)PCB
    發(fā)表于 09-17 09:44

    【視頻】 stm32 uart硬件實(shí)現(xiàn)及深入探討4

    大家上午好!今天來為大家深入講解STM32 uart,視頻為一個(gè)系列,請(qǐng)持續(xù)關(guān)注,會(huì)持續(xù)進(jìn)行更新!有問題留言交流!上期回顧:stm32 uart硬件實(shí)現(xiàn)及深入探討3一鍵分析設(shè)計(jì)隱患,首款國(guó)產(chǎn)PCB
    發(fā)表于 09-22 09:24

    OV7620_OV6620圖像采集之深入探討

    OV7620_OV6620圖像采集之深入探討
    發(fā)表于 09-25 16:13 ?189次下載

    深入探討人工智能的實(shí)際應(yīng)用

    導(dǎo)讀:本文通過案例分門別類地深入探討人工智能的實(shí)際應(yīng)用。案例甚多,此處所列舉的僅是九牛一毛。本該按行業(yè)或業(yè)務(wù)對(duì)這些案例進(jìn)行分類,但相反我選擇按在行業(yè)或業(yè)務(wù)中最可能應(yīng)用的順序來分類。
    的頭像 發(fā)表于 11-11 10:33 ?2626次閱讀
    <b class='flag-5'>深入探討</b>人工智能的實(shí)際應(yīng)用

    FLASH異常改寫

    FLASH異常改寫(嵌入式開發(fā)筆試題目)-某客戶反饋, 當(dāng)MCU 頻繁的正常通斷電的時(shí)候。FLASH 異常
    發(fā)表于 07-30 11:04 ?29次下載
    <b class='flag-5'>FLASH</b><b class='flag-5'>被</b>異常<b class='flag-5'>改寫</b>

    深入探討超聲波風(fēng)速風(fēng)向儀

    深入探討超聲波風(fēng)速風(fēng)向儀
    發(fā)表于 10-27 17:25 ?15次下載

    深入探討交通安全統(tǒng)籌信息系統(tǒng)

    深入探討交通安全統(tǒng)籌信息系統(tǒng)
    發(fā)表于 10-29 18:07 ?0次下載

    MCU 頻繁的正常通斷電的時(shí)候,FLASH異常改寫

    問題描述: 某客戶反饋, 當(dāng) MCU 頻繁的正常通斷電的時(shí)候。FLASH 異常改寫,出現(xiàn)各種各樣的異常(整片別擦除、中斷向量表改寫為 0
    發(fā)表于 02-11 15:37 ?14次下載
    MCU 頻繁的正常通斷電的時(shí)候,<b class='flag-5'>FLASH</b><b class='flag-5'>被</b>異常<b class='flag-5'>改寫</b>

    深入探討醫(yī)療應(yīng)用的未來發(fā)展趨勢(shì)

    深入探討醫(yī)療應(yīng)用的未來發(fā)展趨勢(shì)
    發(fā)表于 11-03 08:04 ?1次下載
    <b class='flag-5'>深入探討</b>醫(yī)療應(yīng)用的未來發(fā)展趨勢(shì)

    深入探討RF信號(hào)鏈

    在我們深入探討之前,我們先來了解RF的實(shí)際含義。乍一看,這似乎是一個(gè)簡(jiǎn)單的問題。我們都知道,RF表示射頻,此術(shù)語的通用定義規(guī)定了特定的頻率范圍:MHz至GHz電磁頻譜。
    的頭像 發(fā)表于 01-03 16:43 ?951次閱讀

    深入探討軟件定義架構(gòu)及其意義

    在上期文章中,我們了解了現(xiàn)代GNSS模擬中的軟件定義架構(gòu),并與傳統(tǒng)架構(gòu)進(jìn)行了對(duì)比,本期文章中我們將繼續(xù)深入探討軟件定義架構(gòu)及其意義。
    的頭像 發(fā)表于 02-08 10:40 ?644次閱讀
    <b class='flag-5'>深入探討</b>軟件定義架構(gòu)及其意義