很多處理器都有rtc實時時鐘功能,s3c2440也提供了這個功能,其功能主要是:實時時鐘、鬧鐘、tick中斷等。rtc的操作比較簡單。讀寫時rtccon最低位應設定為1,不讀寫時設定為0以免誤修改rtc相應暫存器。
bcdsec,bcdmin,bcdhour,bcdday,bcddate,bcdmon,bcdyear可以設定和讀取rtc的值,在程式設計中需要注意一秒只差的問題(具體可檢視晶元手冊),所以在bcdsec值為0時需要重新讀取rtc相應暫存器,防止誤差,這點需要特別注意。
tick中斷可為rtos提供中斷時鐘,其週期計算如下:
可在ticnt設定相應位。達到週期產生中斷。
鬧鐘功能在rtcalm允許使能。在almsec、almmin、almhour、almdate、almmon、almyear中設定鬧鐘值,到達時間後產生相應中斷。
還有一點需要注意,s3c2440的rtc以bcd碼進行讀寫,所以要以十進位制操作應做相應轉換。rtc操作比較簡單,這裡不再作詳細介紹,具體可檢視晶元手冊。測試:將相應時間寫入rtc、設定相應tick中斷和鬧鐘。通過串列埠顯示相應時間。
**如下:
main.c部分
#define global_clk 1
#include#include "def.h"
#include "option.h"
#include "2440addr.h"
#include "profile.h"
#include "mmu.h"
extern void rtc_set(char year, char month, char week,
char date, char hour, char min, char sec);
extern void rtc_read(char *year, char *month, char *week,
char *date, char *hour, char *min, char *sec);
extern void rtc_alarm_set(char year, char mon, char date,
char hour, char min, char sec);
extern void rtc_init(void);
extern void rtc_tick(void);
extern void rtc_alarm(void);
extern char tick_flag, alarm_flag;
void delay(int num);
void delay(int num)
/*rtc設定*/
void rtc_set(char year, char month, char week,
char date, char hour, char min, char sec)
/*讀取rtc*/
void rtc_read(char *year, char *month, char *week,
char *date, char *hour, char *min, char *sec)
*sec = (rbcdsec>>4) * 10 + (rbcdsec & 0x0f);
rrtccon &= ~1;
}/*rtc tick時鐘設定*/
void rtc_tick(void)
/*rtc 鬧鐘初始化*/
void rtc_alarm(void)
/*rtc 鬧鐘設定*/
void rtc_alarm_set(char year, char mon, char date,
char hour, char min, char sec)
/*rtc 鬧鐘中斷服務*/
void __irq rtc_alarm_interrupt(void)
/*rtc tick中斷服務*/
void __irq rtc_tick_interrupt(void)
執行結果如下:
mini2440 解除安裝模組
我的mini2440買回來這麼久了,一直有個問題很奇怪,就是執行insmod ko一切正行,lsmod也可以看到你插入的模組,但是用rmmod就會出現no such file,一直對這個問題就感覺很奇怪,也google了很多,網上五花八門的答案都有。最後還是仔細看了手冊才找到答案,原來是要把板子上的...
mini2440儲存空間
s3c2440把低1g的空間分成了8塊,由圖可知,第0至6這七塊的起始位址是不變的。而第七段的位址是可變的 它的位址有第六塊需要用到多少來決定,反正就是第六第七是連在一起的 前6塊可以是rom sram 最後兩塊不但可以是rom,sram外,還可以是sdram.其實啊,簡單點的說,就是只有最後兩塊才...
基於mini2440的看門狗(裸機)
在由微控制器構成的微型計算機系統中,由於微控制器的工作常常會受到來自外界電磁場的干擾,造成程式的跑飛,而陷入死迴圈,程式的正常執行被打斷,由微控制器控制的系統無法繼續工作,會造成整個系統的陷入停滯狀態,發生不可預料的後果,所以出於對微控制器執行狀態進行實時監測的考慮,便產生了一種專門用於監測微控制器...