娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

s3c2440 看門狗設置使用例程

發布者:SereneHeart最新更新時間:2024-06-14 來源: elecfans關鍵字:s3c2440  看門狗設置  測試例程 手機看文章 掃描二維碼
隨時隨地手機看文章

嵌入式工控領域,為保障程序的持續運行,使用看門狗是必須的。
調狐上網,發現詳細介紹s3c2440 Watchdog的資料真不多。于是就對著linux kernel里的代碼自己研究吧。

偶寫的測試例程如下所示:

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include

time_t  backTime;
struct tm *pBackTime;
int wt_fd;

static void sigAlarm(int sig)
{
    char flag = '0';
    (void)time(&backTime);
    pBackTime= localtime(&backTime);
    printf('day: %d; hour: %d; min: %d; sec: %dn', pBackTime->tm_mday, pBackTime->tm_hour, pBackTime->tm_min, pBackTime->tm_sec);

    write(wt_fd, &flag, 1); //Reset Watchdog
    alarm(2);
    return;
}


int main()
{
       char flag = 'V';
       int ret;
       int timeout = 42;
      
       if(SIG_ERR == signal(SIGALRM, sigAlarm))
       {
           perror('signal (SIGALARM) error');
       }

       wt_fd = open('/dev/watchdog', O_RDWR);
       if(wt_fd <= 0)
       {
           printf('Fail to open watchdog  device!n');
       }
       else
       {
           write(wt_fd,NULL,0);
           printf('Turn on Watch Dogn');
           ret = ioctl(wt_fd, WDIOC_SETTIMEOUT, &timeout);
           if(EINVAL == ret)
           {
                printf('EINVAL Returnedn');
           }
           else if(EFAULT == ret)
           {
                printf('EFAULT Returnedn');
           }
           else if(0 == ret)
           {
                printf('Set timeout %d secs successn', timeout);
           }
           else
           {
                printf('Ret %dn', ret);
           }
       }

       alarm(3);

       while(1);

       write(wt_fd, &flag, 1);
       printf('Turned off Watch Dogn');
       close(wt_fd);
       return 0;
}


本代碼實現了啟用看門狗,設置看門狗超時時間,定時喂狗,關閉看門狗還沒有修正。
經實踐發現,42秒是s3c2440最長的超時時間。


關鍵字:s3c2440  看門狗設置  測試例程 引用地址:s3c2440 看門狗設置使用例程

上一篇:S3C2440上LCD驅動(FrameBuffer)實例開發講解
下一篇:移植u-boot-2010.12.tar.bz2版本到s3c2440過程

推薦閱讀最新更新時間:2025-06-17 14:09

基于S3C2440的LWIP-1.3.0和DM9000在UCOS-II-2.8.6上的移植
經常在Linux上跑,一時間跳到UCOS,感覺有點不習慣。首先是編譯器,GCC是個不錯的選擇,但GDB調試太麻煩。ADS和仿真器結合是個十分不錯的調試環境,于是,將代碼就搬到ADS上,這下完全脫離Linux,整個開發過程都在Windows進行。其實是UCOS太簡潔了,時鐘、接口很多都需要自己開發…小弟對UCOS不是很熟,下面是移植過程的一些小結,希望對有需要的朋友帶來些幫助。關于UCOS在S3C2440上的移植,可以參考《uCOS-II在S3C2440上的移植》一文。 1. 尋找最新代碼,總結前輩經驗,就是下載LWIP的源代碼和Michael Anburaj基于S3C2410的移植版。 http://download.savann
[單片機]
基于<font color='red'>S3C2440</font>的LWIP-1.3.0和DM9000在UCOS-II-2.8.6上的移植
s3c2440調試nandflash裸機程序遇到的問題
按照前面sdram的代碼,啟動代碼里面關看門狗、初始化存儲控制器(主要是BANK0的Norflash和BANK6的SDRAM)、設置棧到SDRAM的最高地址,text段的數據直接從Norflash里面取。 代碼如下: head.S @************************************************************************* @ File:head.S @ 功能:設置SDRAM,將棧設置到SDRAM,然后繼續執行 @************************************************************************* .
[單片機]
uboot在s3c2440上的移植(2)
一、移植環境 主 機:VMWare--Fedora 9 開發板:Mini2440--64MB Nand,Kernel:2.6.30.4 編譯器:arm-linux-gcc-4.3.2.tgz u-boot:u-boot-2009.08.tar.bz2 二、移植步驟 4)準備進入u-boot的第二階段(在u-boot中添加對我們開發板上Nor Flash的支持)。 通常,在嵌入式bootloader中,有兩種方式來引導啟動內核:從Nor Flash啟動和從Nand Flash啟動。u-boot中默認是從Nor Flash啟動,再從上一節這個運行結果圖中看,還發現幾個問題:第一,我開發板的Nor Flash是2M的,而這里顯
[單片機]
u-boot-2011.06在基于s3c2440開發板的移植之編譯配置
在移植之前,我們還需要安裝、配置eldk,用于編譯u-boot。下面我們就先介紹一下eldk的安裝與配置: 1.下載eldk 在這里選擇任一版本的eldk并下載,我選擇的是eldk4.2版本的arm-2008-11-24.iso文件。把該文件下載到/home/zhaocj/download/目錄下。 2.在root權限下安裝eldk 創建掛載點: mkdir /mnt/dvdrom 掛載光驅: mount –o loop /home/zhaocj/download/arm-2008-11-24.iso/mnt/dvdrom 安裝eldk: cd /mnt/dvdrom ./install –d /opt/eldk4.2/ 這樣
[單片機]
s3c2440裸機-內存控制器(三-3、norflash編程之uboot中操作norflash)
前提: norflash初始化正常,能夠正常從nor上執行。 cpu總是從0地址讀取指令執行程序。當cpu設置成nor啟動時,0地址對應nor。cpu從nand啟動時,0地址對應sram。 1.讀取norFlash 我們將板子設為nor啟動,那么0地址對應nor,我們先將uboot燒寫到nor中。我們先看下這款NorFlash的手冊,找到操作flash的命令表: 下面簡單的舉一些例子: 1)復位(reset): 往任何一個地址寫入F0即可。 2)讀ID: 很多的Nor Flash可以配置成位寬16bit(Word),位寬8bit(Byte),我們這款norflash數據位寬為16bit。下面我們按照nor手冊上的命令表
[單片機]
<font color='red'>s3c2440</font>裸機-內存控制器(三-3、norflash編程之uboot中操作norflash)
s3c2440裸機-LCD編程(六、LCD上顯示字符)
1.字庫的移植 字符也是由點構成的,一個個點組成的點陣,其實本質上要顯示文字就是把字庫移植到對應的自己型號相匹配的board上,字庫中的每一個字符都是一些點按照對應格式組合成的集合。 從linux內核源碼中隨便挑選一個字庫文件,比如linux-4.18.16/lib/fonts這個目錄下就有對應的很多字庫文件。在這里我挑選font_8x16.c,如下圖: 其中8x16表示每個字符所占的像素點的大小,表示每個字符占的大小為長*寬=8*16個像素點。 我們來看下一個字符'A'是如何顯示的?從font_8x16.c我們找到字符'A'的數據,如下圖: 那么我們如何讓font_8x16.c這個字庫
[單片機]
<font color='red'>s3c2440</font>裸機-LCD編程(六、LCD上顯示字符)
s3c2440時鐘頻率設置
時鐘源選擇 在nRESET的上升沿鎖存OM 引腳,兩個引腳在原理圖中都接地,所以都為低電平。所以MPLL的時鐘源來源于晶振;UPLL的時鐘源也來源于晶振。 2. 配置流程 t1時刻:上電后,晶振起振,FCLK直接由晶振產生; t2時刻:nRESET拉高,OM 被所存,晶振作為MPLL與UPLL的輸入,但是由于MPLL與UPLL還未配置,所以FCLK還是工作于晶振時鐘; t3時刻:軟件設置PLL CONTROL REGISTER (MPLLCON & UPLLCON)寄存器,配置MDIV、PDIV、SDIV的值,決定MPLL與UPLL的輸出頻率;緊接著設置CLOCK DIVIDER CONTROL (CLKDIVN)寄存器,
[單片機]
Linux驅動:s3c2410/s3c2440 ts驅動分析 之二
一,前言 前面結合“平臺總線-設備-驅動”模型分析了ts(觸摸)驅動的加載過程,現在進入驅動程序分析下其具體的實現。涉及到輸入子系統詳解、input核心層程序分析、evdev事件處理層程序分析、ts設備驅動層程序分析以及s3c2440的ADC轉換和觸摸控制器的操作。 二,涉及的寄存器 三,調用probe函數 根據上一篇的分析,驅動層通過platform_driver_register注冊后,會調用到該驅動層的probe函數。 四,s3c2410ts_probe函數分析 4.1 硬件寄存器設置 4.1.1 獲取設備參數 struct s3c2410_ts_mach_info *info; info = ( str
[單片機]
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 淳安县| 威远县| 永宁县| 营口市| 黔东| 平南县| 拉孜县| 兴国县| 田林县| 张家川| 龙山县| 临沭县| 满洲里市| 搜索| 柯坪县| 潼南县| 彭泽县| 通辽市| 巴马| 宜宾市| 泗阳县| 石林| 灯塔市| 黔江区| 芜湖市| 阜康市| 浦城县| 华亭县| 石门县| 北辰区| 盐亭县| 扶风县| 崇仁县| 托里县| 双峰县| 武安市| 滕州市| 凭祥市| 健康| 茌平县| 海丰县|