STM32在Keil MDK環(huán)境下RAM上代碼調(diào)試
剛在STM32F103ZE-EK上進行了一個例程的調(diào)試~就發(fā)現(xiàn)原來更有方法在RAM中進行代碼調(diào)試的配置~以前在IAR中知道有個iar- cfg.icf文件是關(guān)于存儲分配的~貌似也可以如此~不過沒實際操作過不敢下結(jié)論~索性就在Keil下來了個嘗試~比較坎坷~也學(xué)到不少東西~
本文引用地址:http://m.butianyuan.cn/article/201611/322723.htm廢話少說,進入正題~(Keil4下的畫面~這個配置的方法跟是3一樣~)
步驟與圖示:
1.先給個CPU的數(shù)據(jù),需要注意的是三個紅圈的地方,架構(gòu),型號,F(xiàn)lash和SRAM大小~如圖1
圖1
2.Target的設(shè)置
1)勾上可以用微庫,減小生成代碼的大小
2,3)分別定義ROM區(qū)位置及大小和RAM區(qū)位置和大小。在這里需要說明的是,Cortex-M3的架構(gòu)有4G的尋址空間,而Flash的起始地址在0x08000000,RAM地址在0x20000000,在這里進行了第一次相關(guān)地址的更改~如圖2
0x1000為4K~這里的0xc000則為48K的ROM分配~RAM的為16K~基本上移植個uCOS-II都夠用了~
圖2
3.Output的設(shè)置
強調(diào)一下Name of Executable吧~這里默認(rèn)的應(yīng)該是project的名字,我習(xí)慣改成output~而且這與編譯后產(chǎn)生的*.axf和*.sct文件名字都有關(guān)聯(lián)~沒勾選HEX~感覺選了也沒用~寫到SRAM中的是。。。見圖3
圖3
4.Listing Label~沒啥說的~不上圖了~默認(rèn)~
5.User Label~更沒啥說的~同上~
6.C/C++ Label~貌似都沒啥說的我后面就不用寫了~再同上。。。。~
7.真想罷手了~無語的Asm Label~
8.好啦~來活了~Linker Label
最上邊打上勾~是這效果~不打勾~就反白了~然后呢~呵呵~慢慢說來~
先說說打勾的時候,如圖4~非人為操作~你什么都不用管了~(很多人會發(fā)現(xiàn)~新建的項目~剛開始的時候下面的Scatter File后的內(nèi)容是空的~當(dāng)你把這勾去掉后會自動出現(xiàn)~然后隨你勾與不勾~就都是存在的了~不過此時還只是個影子~沒有實際的文件~什么時候出現(xiàn)這個文件呢~法一:自然你可以自己寫~呵呵~法二:在出現(xiàn)影子后打上勾編譯一次,此文件就產(chǎn)生了~在output的文件夾里~馬上后文還會有對此文件內(nèi)容的介紹~)
圖4
再說說不打勾的時候會反白一些內(nèi)容~如圖5,需要修改兩個地方~
圖5
再來看看~output.sct文件內(nèi)容~如圖6~6行內(nèi)容是ROM的地址和大小~11行事RAM的地址和大小~很是一目了然吧~內(nèi)容根據(jù)Target自動生成的~不需要手動修改~
評論