一個小的項目,在測試時間和產(chǎn)品量稍微大一些之后,出現(xiàn)了一些莫名其妙的非邏輯錯誤的Bug(最頭疼的是不能每次都能復制出來)。經(jīng)過修改后,最近一個月的測試都沒有出現(xiàn)。本人在這里得到了原子哥和其他朋友的很多幫助,也把自己的一些經(jīng)驗分享給各位,也歡迎大家指正。
1. 程序偶爾會出現(xiàn)一些Bug,經(jīng)過output串口信息發(fā)現(xiàn)一些堆棧的臨時變量被莫名其妙的修改。
stm32103rbt6的內(nèi)存是20K,算比較小了,看到程序出錯的那個函數(shù)申請了很多零時變量,也需要訪問很多全局變量。猜想是內(nèi)存被其他操作更改所致。
解決ram被使用過多的一個方法是盡量少用全局變量,能用const就用一定用const變量,因為這樣會放在flash,而不是ram.
我的程序未將全局變量修改成const變量之前,編譯出來
Program Size: Code=40998 RO-data=8702 RW-data=3724 ZI-data=3260
盡量將全局變量修改成const變量之后,編譯出來
Program Size: Code=35778 RO-data=13470 RW-data=108 ZI-data=2060
大大減少了RW-data,這個問題就再也沒出現(xiàn)了。
相關資料:
Code為程序代碼部分
RO-data 表示 程序定義的常量 const temp;
RW-data 表示 已初始化的全局變量
ZI-data 表示 未初始化的全局變量
Total RO Size (Code + RO Data)
Total RW Size (RW Data + ZI Data)
Total ROM Size (Code + RO Data + RW Data)
初始化時RW-data從flash拷貝到RAM
2. 程序莫名其妙死機,
猜想因為申請了很多零時變量,可能需要調(diào)整Stack_Size
在STM32F10x.s文件中
修改Stack_Size EQU 0x00000200
成Stack_Size EQU 0x00000400
就再沒出現(xiàn)死機的情況。
上一篇:STM32的RTC晶振不起振的原因及解決方法
下一篇:STM32學習之:STM32F4XX的三大主體部分
推薦閱讀
史海拾趣
近年來,全球半導體行業(yè)面臨了諸多挑戰(zhàn),包括供應鏈緊張、技術迭代加速等。面對這些挑戰(zhàn),Globaltech積極調(diào)整戰(zhàn)略,加強與上游供應商和下游客戶的溝通與合作,確保供應鏈的穩(wěn)定。同時,公司還加大了對新技術和新產(chǎn)品的研發(fā)投入,以應對行業(yè)變化帶來的挑戰(zhàn)。通過這些努力,Globaltech不僅成功應對了行業(yè)挑戰(zhàn),還實現(xiàn)了業(yè)務的持續(xù)增長。
近年來,全球半導體行業(yè)面臨了諸多挑戰(zhàn),包括供應鏈緊張、技術迭代加速等。面對這些挑戰(zhàn),Globaltech積極調(diào)整戰(zhàn)略,加強與上游供應商和下游客戶的溝通與合作,確保供應鏈的穩(wěn)定。同時,公司還加大了對新技術和新產(chǎn)品的研發(fā)投入,以應對行業(yè)變化帶來的挑戰(zhàn)。通過這些努力,Globaltech不僅成功應對了行業(yè)挑戰(zhàn),還實現(xiàn)了業(yè)務的持續(xù)增長。
為了保持技術領先地位,Globaltech持續(xù)加大研發(fā)投入,建立了先進的研發(fā)中心和測試實驗室。公司不斷引進國內(nèi)外頂尖的研發(fā)人才,并與多所知名高校和研究機構建立產(chǎn)學研合作關系。這些努力使得Globaltech在電源管理IC領域取得了多項技術突破,并成功拓展了產(chǎn)品線,涵蓋了ESD保護器件、MOSFET等多個領域。這些新產(chǎn)品不僅豐富了公司的產(chǎn)品線,也為客戶提供了更加全面的解決方案。
Globaltech的創(chuàng)立可以追溯到21世紀初,當時創(chuàng)始人憑借在電源管理IC設計領域的深厚經(jīng)驗,決定創(chuàng)立一家專注于此領域的公司。公司初期聚焦于線性穩(wěn)壓器和開關穩(wěn)壓器等基礎產(chǎn)品的研發(fā),這些產(chǎn)品廣泛應用于PC、通訊和消費類電子產(chǎn)品中。通過持續(xù)的技術創(chuàng)新和產(chǎn)品優(yōu)化,Globaltech迅速在市場上站穩(wěn)腳跟,贏得了多家知名電子制造商的青睞。
隨著技術的不斷發(fā)展,Enterpoint公司意識到,要想在競爭激烈的市場中保持領先地位,必須不斷進行技術突破和產(chǎn)品升級。公司投入大量資源進行研發(fā),成功開發(fā)出一系列具有高性能、低能耗特點的數(shù)據(jù)處理設備。這些產(chǎn)品的推出不僅提升了公司的市場競爭力,也為客戶帶來了更高效、更穩(wěn)定的數(shù)據(jù)處理體驗。
南京中科微電子有限公司(CSM)的創(chuàng)立源于一群海歸科學家和工程師的激情與夢想。他們曾在國外知名半導體公司如Marvell、ADI、Linear Tech等積累了豐富的研發(fā)經(jīng)驗,并在國家重點研究院所中從事前沿研究。這群人深感國內(nèi)在射頻/模擬關鍵芯片領域的落后,于是決定回國創(chuàng)立CSM,旨在打破國外技術壟斷,實現(xiàn)自主創(chuàng)新和產(chǎn)業(yè)化。
怎么判斷WindowsMobile集成了紅外模塊,紅外設備怎么開關? 沒有找到API來判斷設備是否支持紅外。 在一篇文章中提到:紅外通信中,一般而言紅外并沒有開啟、關閉之類的狀態(tài)。 難道紅外設備就不能開關了? 但在一些WM手機的“通信管理”中,是可以打開關閉紅外的,求解。… 查看全部問答∨ |
誰用過FreeScale的i.MX31,ADS1.2中,中斷搞不定啊! 我用FreeScale的i.MX31(ARM11)做嵌入式系統(tǒng),在WinCE下能使用中斷,但是winCE初始化中斷的代碼是看不到的! 我在ADS1.2中做BootLoader,中斷調(diào)不出來!發(fā)生中斷時,沒有自動跳轉(zhuǎn)到中斷向量那里去。 1、CP15中VE(Bit24)置0, V( Bit13)置0,即中斷 ...… 查看全部問答∨ |
大家好,我需要把勝博PC104的兩塊擴展卡添加到系統(tǒng)中,一塊為ADT882,一塊為ADT900,其都有驅(qū)動,并且告訴了安裝過程,如下: adt900 安裝步驟 1)、把cdt900.o文件拷貝到$(WIND_BASE)/target/lib/objPENTIUMgnuvx目錄中; 2)、在您的VxWorksW ...… 查看全部問答∨ |
提供wince5.0(or ce6.0 R1) MLC解決方案 只需要替換微軟FAL.lib即可支持MLC nand flash support: garbage collection, wearleveling, quick bootup(less than 10s with 4GB nand fully filled), power loss protection. pass tests: CETK, sudden power loss, read/write 只需要lib使用 ...… 查看全部問答∨ |
本人還在上學,要寫畢業(yè)論文。很想搞一個和航空有關的項目。因為學校有一臺真機,供研究用的。導師提議我可以用軟件模擬巡航速度的控制,其實汽車也有這個系統(tǒng)。 看了一點資料,發(fā)現(xiàn)很多都和自適應控制有關。 我以前只學過C++,學了點JAVA,編過 ...… 查看全部問答∨ |
起因是我的板子上少了一條IO輸出線,說啥也找不到了,能通過跳線利用的只有BOOT1/PB2了,因為現(xiàn)在該腳通過一個電阻 ...… 查看全部問答∨ |
【課后練習】launchpad課后練習十三 之 DAC0832學習 launchpad課后練習十三 之 DAC0832學習 1.DAC0832芯片介紹 * D0~D7:8位數(shù)據(jù)輸入線,TTL電平,有效時間應大于90ns(否則鎖存器的數(shù)據(jù)會出錯); * ILE:數(shù)據(jù)鎖存允許控制信號輸入線,高電平有效; * CS:片選信號輸入線(選通數(shù)據(jù)鎖 ...… 查看全部問答∨ |
|
CCS與其它編譯器相比,有其自己的特長,有些靚點是其它編譯器無法比擬的。 它具體有什么特點,使用中發(fā)現(xiàn)了佬技巧,希望大家在這里或另發(fā)帖討論,那怕只言 片語。… 查看全部問答∨ |
教材上、網(wǎng)上搜索的都是使用事件管理器EVA、EVB實現(xiàn)PWM輸出,但tms320f2808的資料上沒有事件管理器,只有ePWM模塊的介紹。它們之間有什么對應關系呢? 我看這兩部分的寄存器名稱都不一樣,不知到底怎樣使用,在2808頭文件找不到EVA、EVB等寄存器。… 查看全部問答∨ |
設計資源 培訓 開發(fā)板 精華推薦
- 嵌入式學習篇丨迅為4412開發(fā)板Android4.4系統(tǒng)編譯
- Linux系統(tǒng)編程篇丨迅為IMX6ULL-對應視頻講解
- 嵌入式學習丨4412開發(fā)板-uboot源碼-匯編-源碼分析(一)嵌入式學習丨4412開發(fā)板-uboot源碼-匯
- 迅為IMX6ULL開發(fā)板-主頻和時鐘配置例程(二)
- 迅為IMX6ULL開發(fā)板-主頻和時鐘配置例程
- 迅為IMX6ULL開發(fā)板安裝VMware Tool工具
- i.MX6ULL終結者Debian文件系統(tǒng)的構建i.MX6ULL 移植Debian文件系統(tǒng)
- 迅為i.MX6ULL開發(fā)板按鍵例程編譯及運行
- 迅為-i.MX6開發(fā)板手冊更新-非設備樹uboot-修改默認環(huán)境變量
- 迅為-IMX6ULL-QT應用_在開發(fā)板上移植ssh
- 迅為-i.MX6ULL開發(fā)板-QT實戰(zhàn)項目DHT11&網(wǎng)絡編程實戰(zhàn)練習(一)
- 迅為-i.MX6ULL開發(fā)板-網(wǎng)絡測試方法(二)
- 迅為-IMX6開發(fā)板設備樹-Linux內(nèi)核配置兩路can
- 4412開發(fā)板一鍵燒寫QT程序到開發(fā)板-安裝ssh
- 迅為iTOP-i.MX6ULL開發(fā)板-網(wǎng)絡通信-套字節(jié)UDP
- 迅為iTOP-i.MX6ULL開發(fā)板-網(wǎng)絡通信-套字節(jié)TCP
- ROHM推出支持負電壓和高電壓(40V/80V)的高精度電流檢測放大器
- 迅為IMX6開發(fā)板非設備樹源碼編譯環(huán)境搭建(一)
- 迅為i.MX6ULL開發(fā)板Platform設備驅(qū)動運行測試
- 泰克示波器旅行指南 更高帶寬、更低噪聲、更多通道
- 跟 TI工程師 立下你的金豬Flag!立Flag & 分享贏雙重好禮!
- 恩智浦跨界處理器能玩出多少應用
- 一覽TE可靠的電源連接家族產(chǎn)品,下載贏TTI定制禮品
- 智能云鎖哪家強?TI市場和技術大咖邀你1月16日10:00直播間暢聊
- 有獎直播|如何借助Mentor Xpedition AMS對汽車CAN總線進行仿真優(yōu)化分析?
- TI 處理器主題月:三場直播精彩這個八月!報名且看直播就能得好禮!更有提問獎相送!
- 獨家拆解 | 語音控制在真無線立體聲TWS耳機上的創(chuàng)新應用
- TI C2000精品課暑期伴你行 學習好禮送不停
- EEWORLD新年有獎競猜,邀你來出題啦!