日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀] 題外話:編譯環(huán)境選擇推薦對于剛剛接觸ARM裸機編程的各位,我要特別的進行提醒一下,就是關于編譯環(huán)境的選擇問題。目前主流的有ADS+AXD,KEIL FOR ARM,IAR FOR ARM三種,我開始使用的ADS+AXD進行學習,

題外話:編譯環(huán)境選擇推薦

對于剛剛接觸ARM裸機編程的各位,我要特別的進行提醒一下,就是關于編譯環(huán)境的選擇問題。目前主流的有ADS+AXD,KEIL FOR ARM,IAR FOR ARM三種,我開始使用的ADS+AXD進行學習,因為光盤里面自帶,而且很多資料都是他的,但是個人感覺真心調(diào)試十分的不方便,而且各種容易死機,并且現(xiàn)在也已經(jīng)不更新了,北航一本講嵌入式的書出了一個第二版,就是把ADS換成了KEIL,而且以后KEIL會是主流,因此我推薦選擇KEIL進行學習。IAR聽我一個同學說也十分好用,但是在網(wǎng)上找有關方面的資料不是很多。而且我想北航一群教授編書都用KEIL進行,說明KEIL自有他的優(yōu)勢,書上這么說了,那以后會有更多學生用,這樣慢慢也會更加流行與主流。閑話就說這些。

正題:Keil for ARM的環(huán)境搭建

提醒一下各位就是在keil for ARM進行環(huán)境搭建的時候,要注意調(diào)試時環(huán)境搭建與下載環(huán)境的搭建是不同的,因為在下載環(huán)境搭建的時候是把程序下載到nor flash里面直接進行運行,而調(diào)試環(huán)境是把程序下載到RAM里面進行執(zhí)行。nor flash里面也可以進行調(diào)試環(huán)境的搭建,但是在nor flash里面只能建立兩個端點,而且flash擦寫次數(shù)有限對壽命有影響。所以不推薦。所以調(diào)試的時候推薦在RAM里面進行調(diào)試。

配置方法的測試環(huán)境:MDK 4.11 JLINK 4.08 開發(fā)板是mini2440 其他的環(huán)境配置類似,

首先介紹關于程序下載的方法

①建立一個project芯片選擇S3C2440(在SAMSUNG里面)并且加入啟動代碼。

②編輯自己的測試程序。

測試程序如下


  1. #include

  2. voiddelay()

  3. {

  4. inti,j;

  5. for(i=0;i<10000;i++)

  6. {

  7. for(j=0;j<50;j++);

  8. }

  9. }

  10. intmain()

  11. {

  12. GPBCON=0x155555;

  13. while(1)

  14. {

  15. GPBDAT|=0x1E0;

  16. GPBDAT&=0x1C0;

  17. delay();

  18. GPBDAT|=0x1E0;

  19. GPBDAT&=0x1A0;

  20. delay();

  21. GPBDAT|=0x1E0;

  22. delay();

  23. }

  24. }


實現(xiàn)的兩個LED循環(huán)間歇顯示。

③開始進行工程的配置,配置分為以下幾步(程序下載的配置)

第一步

也是非常要注意的一點就是:打開S3C3440.S這個文件夾,點擊configuration wizard

進入這個界面,把所有選項都勾上。

。

第二步現(xiàn)在進入Target的配置

現(xiàn)在點擊中的魔棒,出現(xiàn)配置環(huán)境。

第三部配置Target這個選項欄。配置如下

后面我會進行介紹為什么需要這樣去配置它。編譯器回根據(jù)這個環(huán)境生成一個.sct的文件與之對應,作為程序加載,執(zhí)行的一些信息。

第四步:進入output這個選項中勾選Creat HEX file,如下圖所示。

第五步:進入Utilities這個選擇中,選擇如下

因為在此我使用的是JLINK,再點擊setting進行設置,設置情況如下圖

對于flash算法的選擇可以選擇一個相近的,對于我的板子,nor flash是AM29LV160DB,因此我選擇了這個類型的nor flash,做完以上配置后,點擊OK,不斷OK就可以配置成功了。就可以編譯,沒有任何錯誤再進行下載。就可以看到LED循環(huán)點亮了。

下面是關于程序調(diào)試的配置方式。我們調(diào)試是在RAM里面進行的。

第一步:同樣需要對S3C2440.S進行configuration wizard進行勾選。如果開始已經(jīng)做了,這步略過。

第二步:進入到配置界面的Target選項欄。進行如下配置。

第三步,進入到output選項欄勾選Creat HEX file,如果已經(jīng)勾選可以略過。

第四步:進入Debug選項欄,進行如下的配置

Ext_RAM.ini(來自事例程序中)文件代碼如下并且要進行修改


  1. FUNCvoidSetupForStart(void){

  2. //ProgramEntryPoint

  3. PC=0x30000000;

  4. }

  5. FUNCvoidInit(void){

  6. _WDWORD(0x4A000008,0xFFFFFFFF);//DisableAllInterrupts

  7. _WDWORD(0x53000000,0x00000000);//DisableWatchdogTimer

  8. //ClockSetup

  9. //FCLK=300MHz,HCLK=100MHz,PCLK=50MHz

  10. _WDWORD(0x4C000000,0x0FFF0FFF);//LOCKTIME

  11. _WDWORD(0x4C000014,0x0000000F);//CLKDIVN

  12. _WDWORD(0x4C000004,0x00043011);//MPLLCON

  13. _WDWORD(0x4C000008,0x00038021);//UPLLCON

  14. _WDWORD(0x4C00000C,0x001FFFF0);//CLKCON

  15. //MemoryControllerSetupforSDRAM

  16. _WDWORD(0x48000000,0x22000000);//BWSCON

  17. _WDWORD(0x4800001C,0x00018005);//BANKCON6

  18. _WDWORD(0x48000020,0x00018005);//BANKCON7

  19. _WDWORD(0x48000024,0x008404F3);//REFRESH

  20. _WDWORD(0x48000028,0x00000032);//BANKSIZE

  21. _WDWORD(0x4800002C,0x00000020);//MRSRB6

  22. _WDWORD(0x48000030,0x00000020);//MRSRB7

  23. _WDWORD(0x56000000,0x000003FF);//GPACON:EnableAddresslinesforSDRAM

  24. }

  25. //Resetchipwithwatchdog,becausenRSTlineisroutedonhardwareinaway

  26. //thatitcannotbepulledlowwithULINK

  27. _WDWORD(0x40000000,0xEAFFFFFE);//LoadRAMaddr0withbranchtoitself

  28. CPSR=0x000000D3;//Disableinterrupts

  29. PC=0x40000000;//PositionPCtostartofRAM

  30. _WDWORD(0x53000000,0x00000021);//EnableWatchdog

  31. g,0//WaitforWatchdogtoresetchip

  32. Init();//Initializememory

  33. LOAD.led.axfINCREMENTAL//Downloadprogram

  34. SetupForStart();//SetupforRunning

  35. g, main // Goto Main

本站聲明: 本文章由作者或相關機構(gòu)授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉