您的位置:首页 > 其它

基于at91sam9260芯片在u-boot写添加看门狗控制命令

2015-08-28 20:14 351 查看
   基于at91sam9260芯片在u-boot下添加wdt on/off控制命令,需要进行如下修改:

   1、在common目录下增加cmd_wdt.c文件,代码如下:

 /<span style="font-size:18px;">*
* Driver for NAND support, Rick Bronson
* borrowed heavily from:
* (c) 1999 Machine Vision Holdings, Inc.
* (c) 1999, 2000 David Woodhouse <dwmw2@infradead.org>
*
* Added 16-bit nand support
* (C) 2004 Texas Instruments
*/

#include <common.h>
#include <command.h>

int do_wdt(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
{
if((argc != 2))
{
printf("Usae:\n%s\n",cmdtp->usage);
return 1;
}
if(strlen(argv[1]))
{
setenv(argv[0],argv[1]);
saveenv();
printf("setenv %s %s\n",argv[0],argv[1]);
}
return 0;
}

U_BOOT_CMD(wdt, 2, 1, do_wdt,
"wdt - Watchdog control system\n",
"on/off on/off the watchdog\n"
"u-boot control the watchdog on/off\n");</span>
其中U_BOOT_CMD ()参数如下:
1、wdt:命令单独表示符

2、2:代表两个参数

3、1:命令处理完成后是否返回,就是函数的返回类型

4、do_wdt:命令调用处理函数

5、"wdt   - Watchdog control system\n",:简单的使用说明

6、"on/off on/off the watchdog\n"

      "u-boot control the watchdog on/off\n":详细使用说明

2、修改编译文件Makefile

  打开common目录下的Makefile,添加如下代码:

<span style="font-size:18px;"> COBJS-$(CONFIG_CMD_FLASH) += cmd_wdt.o</span>

3、在lib_arm目录下的board.c文件中添加检测处理函数

  <span style="font-size:18px;">/*
add the watchdog controll check function by pengrui,2015.08.28
remebber that the funtion must return
*/
static int wdt_controller(void)
{
char *buf;
buf = getenv("wdt");
if(buf&&(strcmp(buf,"off")==0))
{
(*(volatile unsigned long *)0xFFFFFD44) = 0x00008000;
}
return 0;
}</span>
注意:此处的函数wdt_controller将会添加至init_sequence[]结构体中处理,所以函数的返回值必须为int类型
然后在init_sequence中加入处理函数,至此,我们就完成了u-boot下对at91sam9260芯片的wdt处理命令。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: