公交车忘穿内裤被挺进 I 毛片激情视频 I 男女做那个的全过程 I 亚洲三级在线视频 I 中文字幕三级人妻无码视频 I 国产α片免费观看在线人 I 91国精品 I 9l视频自拍九色9l视频视频 I 综合激情丁香 I 久久久久久久久久影视 I 特级av I 91av伊人 I 超碰人人cao I 2020国产精品自拍 I 亚洲男人天堂手机版 I 97超级碰撞免费在线观看完整版 I 视频一区三区 I 毛片动态图 I 麻豆视频免费网站 I 捆绑无遮挡打光屁股 I 91免费日韩 I 青草久久视频 I 少妇一边呻吟一边说使劲视频 I 日本护士吞精囗交456小说 I 在线看h片 I 四川bbbb搡bbb搡b1 I 少妇口述做爰的细节描述和过程 I 四虎地址8848 I 在线成人免费观看www I 在线短视频 I 极品女教师裸体瑜伽视频 I 免费在线你懂的 I 日韩人妻ol丝袜av一二区 I 免费欧美一级片 I 男的操女生 I 熟妇人妻激情偷爽文 I 扒开美女狂揉网站韩国漫画 I 国产精品视频h I 免费在线观看黄色小说 I 最新毛片网 I 男人脱美女丝袜上下摸 I 午夜福利yw在线观看2020 I 新婚之夜疯狂做爰视频一区二区 I 亚洲激情欧美色图 I 欧美一区二区三区成人精品 I 好吊妞在线观看 I 中文字幕影片免费在线观看 I 亚洲a一区二区三区 I a级国产片 I 日韩电影第二页 I www.亚色太在线.com I 特级黄色网 I 午夜激情久久久 I 国产又粗又猛视频免费 I 伊人免费网 I 久久视频一区 I 日产学生妹在线观看

聯(lián)系我們
發(fā)送郵箱
主頁(yè) ? 技術(shù)支持 ? 案例展示 ? STM32F407IGT6使用外部SRAM導(dǎo)致死機(jī)該如何解決

技術(shù)支持

STM32F407IGT6使用外部SRAM導(dǎo)致死機(jī)該如何解決

2019-08-13 16:34:10

該問(wèn)題由某客戶提出,發(fā)生在 STM32F407IGT6 器件上。據(jù)其工程師講述:為了滿足軟件對(duì)大容量?jī)?nèi)存的需求,將軟件中的部分變量從內(nèi)部 SRAM 轉(zhuǎn)移到片外的 SRAM當(dāng)中。而這一改變,導(dǎo)致該軟件不能運(yùn)行,每次復(fù)位后,隨即發(fā)生死機(jī)。在此之前,對(duì) FSMC 的初化代碼,以及片外SRAM 的讀寫(xiě)均做過(guò)測(cè)試,并確認(rèn)是沒(méi)有問(wèn)題的。其內(nèi)存分配如下表(一)所示。
sram內(nèi)存分配表
調(diào)研:
 
使用 Keil MDK 創(chuàng)建工程,測(cè)試其所用的FSMC 初始化代碼,結(jié)果表明該段代碼正確無(wú)誤。修改內(nèi)存分配,刪除其中對(duì)外部 SRAM 的分配,如下表(三)所示。重新對(duì)其軟件編譯運(yùn)行。結(jié)果表明,在這種內(nèi)存分配方式下,其軟件可以正常運(yùn)行。修改其軟件代碼,在初始化FSMC 之后加入對(duì)外部 SRAM 的讀寫(xiě)測(cè)試,重新編譯運(yùn)行。測(cè)試結(jié)果表明,此時(shí)對(duì)外部SRAM 的讀寫(xiě)也是正確的。查找其軟件對(duì) FSMC 初始化函數(shù)調(diào)用的位置,發(fā)現(xiàn)該函數(shù)是在該軟件的main()函數(shù)中調(diào)用的。修改代碼,將該函數(shù)的調(diào)用位置移至 SystemInit()中,并且恢復(fù)原來(lái)的內(nèi)存分配,如上表(一)。重新編譯并運(yùn)行,此時(shí)該軟件正確運(yùn)行。
sram內(nèi)存分配表2

結(jié)論:
 
軟件中對(duì) FSMC 做初始化的位置不對(duì),導(dǎo)致程序在訪問(wèn)外部SRAM時(shí) FSMC 還未被初始化,從而造成總線訪問(wèn)出錯(cuò),從而產(chǎn)生 HardFault 中斷,最終程序停留在 HardFault中斷服務(wù)程序中,使得程序?qū)ν獗憩F(xiàn)出“死機(jī)”的現(xiàn)象。
 
處理:
 
一般來(lái)說(shuō), main()函數(shù)是 C 語(yǔ)言的入口,C 語(yǔ)言代碼從這里開(kāi)始執(zhí)行。然而,具體結(jié)合到STM32的應(yīng)用工程,這并不是工程運(yùn)行的起點(diǎn)。往往在main()函數(shù)執(zhí)行之前,還有一段啟動(dòng)初始化代碼,為硬件做最基本的時(shí)鐘和中斷矢量配置等;為 C 語(yǔ)言代碼的執(zhí)行創(chuàng)建一個(gè)運(yùn)行環(huán)境。這里主要涉及兩個(gè)函數(shù),即SystemInit()和__main()。其中__main()是編譯系統(tǒng)提供的一個(gè)函數(shù),負(fù)責(zé)完成C庫(kù)函數(shù)和應(yīng)用程序執(zhí)行環(huán)境的初始化,之后跳轉(zhuǎn)到用戶main()。在__main()做 C 環(huán)境初始化的時(shí)候,會(huì)訪問(wèn)相關(guān)的存貯器。如果此時(shí),相應(yīng)的存貯器不可用,就會(huì)出現(xiàn)錯(cuò)誤。在STM32啟動(dòng)的文件里,SystemInit()函數(shù)先于__main()的執(zhí)行。所以,如果在SystemInit()函數(shù)里先對(duì) FSMC 的做好初始化就可以避免后面__main()運(yùn)行時(shí)訪問(wèn)相關(guān)內(nèi)存出現(xiàn)異常的問(wèn)題。
 
修改代碼,將對(duì) FMSC 初始化函數(shù)的調(diào)用放在SystemInit()函數(shù)中,以保證在 C 環(huán)境初始化之前完成對(duì)FMSC 的初始化。

本文關(guān)鍵詞:SRAM


相關(guān)文章:VTI508NL16低功耗SRAM芯片


深圳市英尚微電子有限公司是一家專業(yè)的靜態(tài)隨機(jī)記憶體產(chǎn)品及方案提供商,十年來(lái)專業(yè)致力代理分銷存儲(chǔ)芯片IC, SRAM、MRAM、pSRAM、 FLASH芯片、SDRAM(DDR1/DDR2/DDR3)等,為客人提供性價(jià)比更高的產(chǎn)品及方案。
英尚微電子中國(guó)區(qū)指定的授權(quán)代理:VTI、NETSOL、JSC濟(jì)州半導(dǎo)體(EMLSI)、Everspin 、IPSILOG、LYONTEK、ISSI、CYPRESS、ISOCOME、PARAGON、SINOCHIP、UNIIC; 著名半導(dǎo)體品牌的專業(yè)分銷商  如:RAMTROM、ETRON、FUJITSU、LYONTEK、WILLSEMI。
 

?更多資訊關(guān)注SRAMSUN.   www.xjqudao.cn         0755-66658299
展開(kāi)
主站蜘蛛池模板: 商水县| 郓城县| 桓台县| 洱源县| 南平市| 崇仁县| 康乐县| 多伦县| 滨海县| 石泉县| 芮城县| 新邵县| 黄龙县| 关岭| 凤台县| 中卫市| 滦南县| 林西县| 瑞金市| 宜黄县| 包头市| 密云县| 台东市| 鄂温| 阳西县| 弋阳县| 关岭| 鄄城县| 道真| 乳山市| 邮箱| 宣恩县| 蛟河市| 镇安县| 武乡县| 綦江县| 同德县| 新河县| 南宫市| 黔东| 阜新|