ARM9 2440裸機驅動01 LED GPIO

2021-10-21 04:44:00 字數 1365 閱讀 4830

*****=簡要*****=

1、主線程: while 和 delay_ms

2、檔案歸類和標頭檔案

3、程式設計規範:統一格式

4、程式設計規範:函式布局-初始化和功能介面

5、程式設計規範:暫存器操作 volatile

6、單個led的閃爍操作

1、主線程裡面main函式:  必須有乙個while(1);

2、最簡便的延時程式,使用cpu本身的for:

void delay_ms( unsigned int time)

5、程式設計規範——暫存器操作:

暫存器分為清零和置位,也分為讀取和寫入。

volatile的使用:

讀取暫存器和中斷函式裡面變數的使用,都要用volatile。

操作多功能暫存器:

必須借用中介變數,不影響其他io

先用temp讀出來,不改變其他位置的值,然後再給暫存器賦值。

---先給中介變數指定位清零使用

temp &=~((3<<16) | (3<<14));

---再給中介變數指定位置位:

temp = temp | (1<<16) | (1<<14);

---最後使用中介變數給目標暫存器賦值

void led_init(void)		

6、功能函式的封裝:

驅動就是操作底層暫存器

void led_control(int lednum, int status)

else

break;

}}

********************=其他模組的led操作:

7、操作單個led==操作gpio 閃爍:

static u8 led_on=0;

led_on^=1;

if (led_on)

led1_io_on();

else

led1_io_off();

case headled_blink:  //控制頭燈閃爍

else

}break;

}

if (time_diff(os_tick_get(), led_task_time) >= ms_to_ticks(g_ctrl_set.blink_diff))

else

g_ctrl_set.blink_num--;}}

ARM 裸機 02 ARM裸機開發流程

執行在不同平台上的程式,開發過程不盡相同。為了更好地理解 arm 裸機的開發流程,我們先和比較熟悉的 windows linux 應用程式開發對比。不同平台程式開發流程對比示意 編譯嵌入式程式的平台稱為宿主機,譬如執行 ubuntu 系統的 pc。執行嵌入式程式的平台稱為目標機,譬如 arm 開發板...

ARM裸機知識

ram rom ram掉電丟失,rom掉電不丟失 ram中又分兩大類,dram sram sram static ram執行速度飛快,記憶體小,昂貴 dram dynamic ram 執行速度比rom快,比sram慢,便宜 電腦記憶體 flash 又稱快閃儲存器,它結合了rom和ram的長處,不僅具...

學習arm裸機程式

兩個星期,打通了以mini2440為基礎,找別人借了個見jlink,編譯軟體用的是mdk4.22,打通了arm裸機的大部分程式,包括io 定時器 串列埠 中斷 ad等等,其中最重要的和微控制器的不同是位址問題 原先微控制器的c語言不需要管位址,但現在需要了,特別是rom ram的設定 其中比較重要的...