www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

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

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

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

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

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

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

首先介紹關(guān)于程序下載的方法

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

②編輯自己的測(cè)試程序。

測(cè)試程序如下


  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. }


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

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

第一步

也是非常要注意的一點(diǎn)就是:打開S3C3440.S這個(gè)文件夾,點(diǎn)擊configuration wizard

進(jìn)入這個(gè)界面,把所有選項(xiàng)都勾上。

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

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

第三部配置Target這個(gè)選項(xiàng)欄。配置如下

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

第四步:進(jìn)入output這個(gè)選項(xiàng)中勾選Creat HEX file,如下圖所示。

第五步:進(jìn)入U(xiǎn)tilities這個(gè)選擇中,選擇如下

因?yàn)樵诖宋沂褂玫氖荍LINK,再點(diǎn)擊setting進(jìn)行設(shè)置,設(shè)置情況如下圖

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

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

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

第二步:進(jìn)入到配置界面的Target選項(xiàng)欄。進(jìn)行如下配置。

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

第四步:進(jìn)入Debug選項(xiàng)欄,進(jìn)行如下的配置

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


  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

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

ARM系統(tǒng)幾乎都采用Linux的操作系統(tǒng),而且?guī)缀跛械挠布到y(tǒng)都要單獨(dú)構(gòu)建自己的系統(tǒng),與其他系統(tǒng)不能兼容,這也導(dǎo)致其應(yīng)用軟件不能方便移植,這一點(diǎn)一直嚴(yán)重制約了ARM系統(tǒng)的發(fā)展和應(yīng)用。GOOGLE開發(fā)了開放式的Andro...

關(guān)鍵字: Linux x86 ARM

隨著計(jì)算需求的多樣化,尤其是隨著移動(dòng)設(shè)備、嵌入式系統(tǒng)和云計(jì)算的興起,ARM 和 x86 架構(gòu)之間的爭(zhēng)論變得更加突出。ARM(高級(jí) RISC 機(jī)器)和 x86 代表兩種不同類型的處理器架構(gòu),每種架構(gòu)都針對(duì)不同的工作負(fù)載和用...

關(guān)鍵字: Linux x86 ARM

從畫質(zhì)優(yōu)化 (NSS) 到幀率提升 (NFRU) 和光線追蹤(NSSD),Arm 計(jì)劃覆蓋移動(dòng)端圖形處理的多個(gè)維度,推動(dòng)邊緣 AI 圖形革命。而未來通過持續(xù)的技術(shù)迭代,Arm也將保持在移動(dòng)計(jì)算領(lǐng)域的技術(shù)領(lǐng)先,滿足手游、A...

關(guān)鍵字: ARM 神經(jīng)圖形技術(shù) GPU AI ML

7月31日消息,據(jù)媒體報(bào)道,芯片架構(gòu)提供商Arm Holdings首席執(zhí)行官Rene Haas宣布,公司正加大投入開發(fā)自有芯片產(chǎn)品,此舉標(biāo)志著其從傳統(tǒng)IP授權(quán)模式向提供實(shí)體芯片的戰(zhàn)略重大轉(zhuǎn)變。

關(guān)鍵字: ARM META

7月28日消息,2025年,中國AI硬件市場(chǎng)規(guī)模將首次突破萬億元大關(guān)。

關(guān)鍵字: AI ARM

受生成式 AI 驅(qū)動(dòng), RISC-V 芯片市場(chǎng)快速發(fā)展。預(yù)計(jì)到2030年,RISC-V SoC出貨量將達(dá)到1618.1億顆,營收將達(dá)到927億美元。其中,用于AI加速器的RISC-V SoC出貨量將達(dá)到41億顆,營收將達(dá)...

關(guān)鍵字: RISC-V CPU AI CUDA ARM 推理
關(guān)閉