用于arm裸機程序開發的IDE基本有MDK,IAR,還有ADS,也可以選擇在linux下安裝交叉編譯鏈來進行開發。筆者選擇的是MDK作為我進行開發的IDE。下面介紹筆者搭建開發環境的過程。
筆者主要參考了兩篇博文來進行開發環境的搭建的,分別是:
http://blog.csdn.net/mybelief321/article/details/8910528
http://blog.csdn.net/shengnan_wu/article/details/8116815
筆者搭建后的相關環境如下:
開發板:mini2440
操作系統:Windows 8.1 64位
開發環境:MDK 4.6版本
仿真器:JLink v450j
相關文件由于太大,筆者無法上傳到CSDN,故有需要的朋友可在留言里向筆者索要,筆者將其上傳到別的網盤,然后分享給大家。
MDK,JLink的安裝就不多說了,直接跟著提示走就行了。
下面是關于MDK工程的建立,以及通過JLink將我們的程序燒寫進開發板中和通過MDK對我們的程序進行調試。
(一) MDK工程的建立
1).打開KeiluVision4,建立一個新的工程,如下圖所示:
2).新建一個目錄來存放我們的工程
在這里,我新建的目錄是test,新建的工程是test.uvproj
3).接下來選擇CPU,筆者選擇的是samsung的S3C2440A,點擊OK,如下:
接著,會出現選擇是否將“S3C2440.s”拷貝進我們的工程的對話框,如下圖,因為該文件包含一些啟動代碼,所以我們選擇是。
4).可以根據需要對S3C2440.s進行設置。設置方法是:打開該文件,選擇編輯界面下面的Configurationwizard進行配置,如下所示:
5).之后新建一個c文件并編寫代碼,并將其添加到工程里,具體的過程筆者就不多介紹了。
6).單擊Target1的Optionsfor Target ' Target 1'進行相應的配置,具體如下:
a ) Target選項修改為如下圖所示:
b) OutPut選項修改為如下圖所示:
c) 在User選項里相應位置添加命令(用于生成.bin文件和.axf調試文件,添加的命令為:fromelf --bin -o @p.bin @p.axf)如下:
d) 在Utilities選項中進行修改,如下:
再單擊Settings,進行如下設置:
e) 大概的設置就是這些,保存后就行。這樣子就可以正常編譯,并生成可以通過JLink燒寫進我們的開發板的bin文件了。具體燒寫的過程在下面介紹。
(二) 通過JLink燒寫程序
筆者選擇通過JLink燒寫程序進去開發板,具體的操作過程如下:
1) 打開JFlash,可以選擇新建工程,也可以選擇打開別人已經配置好的工程,功臣里面儲存的是對開發的相關配置信息。筆者選擇的是別人已經配置好的工程(下載地址為:http://download.csdn.net/detail/lookerson/7964281)。
單擊File,選擇OpenProject,選擇s3c2440.jflash。
2) 給開發板上電,通過JLink連接計算機,單擊Target選項,選擇Connect選項,一般情況下,開發板就正常連接了。
3) 單擊File,選擇Open data file,打開我們在之前生成的bin文件,按照提示即可。
4) 下面進行燒錄,可以直接按F7,也可以選擇Target選項的Auto選項,如果沒有意外,燒錄就完成了。
5) 接下來就是斷開開發板的連接,單擊Target選項的Disconnect即可,然后按下開發板的復位鍵,應該就可以看到成果了。
(三) 通過MDK進行調試
通常,我們需要對我們的程序進行調試,MDK給我們提供了一種很好的調試方法,具體的設置過程如下:
1) 由于MDK4.6中缺少了待會需要用到的文件,但是在MDK4.0里有,所有我先安裝了MDk4.0,然后在MDK4.0安裝目錄的C:\Keil\ARM\Boards\Samsung把S3C2440目錄拷貝到MDK4.6的安裝目錄的D:\Keil\ARM\Boards\Samsung目錄下,然后可以把MDK4.0卸載掉。只好把S3C2440目錄下的RTX_Blinky下的Ext_RAM.ini拷貝到工程目錄下,也可以直接用筆者提供的文件(http://download.csdn.net/detail/lookerson/7965419).
2) 修改Ext_RAM.ini,把如下圖的灰色內容修改成你對應生成的axf文件的路
我的修改后如下所示:
3) 選擇Target 1的Options for Target ' Target 1'進行相應的配置
a) Target選項修改為如下圖所示:
b) 在Linker選項里勾上Use Memory Layoutfrom target Dialog
c) 在debug選項的配置主要有以下幾項:
勾上右邊的Use,Use里選擇J-Link/J-Tracearm(選擇Jlink調試)
在InitializationFile選擇之前修改的Ext_ARM.ini文件的路徑
點擊Settings按鈕,設置JTAGSpeed為Auto Selection,如下圖:
保存相關的設置后,修改就應該已經完成了。
rebuild一下,連接好JLink和開發板,上電,點擊Debug就可以開始調試了,如下所示:
至此,s3c2440的開發環境就基本上搭建完成了。如果有什么疏漏之處,歡迎大家指出,需要相關資源的朋友,也可以通過留言告訴筆者。
上一篇:PIC單片機ISP下載外圍鏈接電路
下一篇:ARM中斷向量表的簡單分析
推薦閱讀
史海拾趣
隨著業務的不斷拓展,AAC公司意識到美國市場的巨大潛力。于是,在1996年,AAC決定在美國設立分公司,專門負責美國市場的銷售。與此同時,為了滿足不斷增長的市場需求,AAC還在深圳設立了美歐電子有限公司,專門批量生產手機用訊響器。這一系列的舉措使得AAC的產品線更加豐富,產能也得到了大幅提升。
2019年,中微股份(Cmsemicon)迎來了又一個重要時刻——成為科創板首批上市公司之一。這一榮譽不僅是對公司過去成績的肯定,也為公司的未來發展提供了更多的資金支持。上市以來,公司充分利用資本市場的優勢,加大研發投入,推動技術創新和產品升級。同時,公司還積極拓展國際市場,提升品牌影響力。
隨著新能源汽車市場的蓬勃發展,西安航天民芯敏銳地捕捉到了這一機遇。公司投入大量資源進行新能源汽車BMS管理芯片的研發,并成功推出了國內首款新能源汽車專用BMS管理芯片。這一創新產品填補了國內空白,為公司在新能源汽車領域贏得了先機。
CP Technology Inc成立之初,便專注于半導體技術的研發。公司研發團隊成功開發出一種高效能、低功耗的芯片,這一創新為公司的快速崛起奠定了基石。隨著技術的不斷完善和產品的廣泛應用,CP Technology Inc逐漸在半導體市場上占據了一席之地。公司通過持續的技術創新和產品迭代,不斷滿足市場需求,贏得了客戶的信賴和支持。
CP Technology Inc成立之初,便專注于半導體技術的研發。公司研發團隊成功開發出一種高效能、低功耗的芯片,這一創新為公司的快速崛起奠定了基石。隨著技術的不斷完善和產品的廣泛應用,CP Technology Inc逐漸在半導體市場上占據了一席之地。公司通過持續的技術創新和產品迭代,不斷滿足市場需求,贏得了客戶的信賴和支持。
在快速發展的同時,CP Technology Inc始終關注環保和可持續發展。公司積極推廣綠色生產技術,減少能源消耗和環境污染。同時,公司還參與了多項環保公益活動,倡導社會各界共同關注環保問題。這種環保理念不僅提升了公司的社會形象,也為公司的可持續發展注入了新的動力。
以上五個故事是基于電子行業發展的普遍趨勢和可能事件虛構的,旨在展示一個電子公司可能的發展歷程。每個故事都圍繞不同的主題展開,但都突出了公司在技術創新、戰略合作、全球化布局、品質管理和環保理念等方面的努力和成就。這些故事雖然是虛構的,但所蘊含的發展理念和策略對于現實中的電子公司來說也具有一定的借鑒意義。
經過大家的集思廣益,本次活動確定制作大家熟悉的,伴有爛漫神奇色彩的魔幻搖搖棒~ 搖一搖,搖出你的心意,搖一搖,搖出你的勤勞~ 換種方式大膽說出:I LOVE YOU! 年輕的工程師們,你們還等什么?DO IT YOURSELF ! 參與活 ...… 查看全部問答∨ |
據我所知,CE中分32個進程槽,每個進程可以使用32M的內存。 加起來就是1GB。。 可是CE最大支持512M物理內存。 如果32個進程同時運行,,哪兒有那么多物理內存可用呀???? … 查看全部問答∨ |
一個裸機程序,溫度傳感器裸機可以測試通過,串口可以打印溫度信息,為什么把它移植到wince操作系統下,做成一個一按鍵就讀取數據的驅動程序,為什么讀取的數據不對呢?… 查看全部問答∨ |
|
keil+uC/OS,是如何實現在任務的堆棧中操作局部變量的? keil+uC/OS,是如何實現在任務的堆棧中操作局部變量的? 比如在程序中建立了一個任務TASK1,任務中定義了幾個局部變量a,b,c, 在任務建立的時候,分配的堆棧是arrStask[500]。 那么程序執行到TASK1的時候,是如何保證把幾個局部變量分配到對應的 ...… 查看全部問答∨ |
以前做好的一個VISTA的NDIS filter,現在編譯出來用osrloader總是加載不起來。錯誤原因就是“連到系統上的設備沒有發揮作用”。試了下把WDK6000自帶的filter編譯出來也是同樣的結果,應該不是代碼的問題。出現這個的原因是什么呢 … 查看全部問答∨ |
很多軟件的主界面的最下方,都有一個狀態欄,而狀態欄的右下角的一個三角標,可以用鼠標拖動改變窗口的大小,這就是狀態欄的SBARS_SIZEGRIP樣式,但Windows CE中沒有這樣式。WCE下如何實現類似功能?… 查看全部問答∨ |
以后后想做嵌入式。 但是我就懂點C和UNIX方面的,現在沒有任何的硬件,電路基礎。 我聽別人說,看《數字電路》 我買了這本書,發現看不懂,好像需要數字邏輯方面的知識,我又買了本《數字邏輯與數字系統》,但是發現還是欠缺知識。 ...… 查看全部問答∨ |