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

   基于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处理命令。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值