En 0755-86038900
公司新闻

4412开发板Linux开发指南8

发布时间:2015-03-31

Linux平台下UT4412BV03裸机开发指南(八)

 

第一章 增加命令功能

第一节 关于命令功能

这里所说的命令功能类似linux中的shell,输入一个命令,然后程序开始解析运行。这里我们只是象征性的实现几个简单的命令,包括下列命令:

1) help:提供帮助信息

2) mdmemory display 显示内存

3) mwmemory write 写内存

(友坚4412开发板,5260开发板

 

第二节 程序相关讲解

完整代码见目录7.command

第一节 main.c

#define CFG_PROMPT  "UT4412BV03 # " /* Monitor Command Prompt */

 

int main (void)

{

char buf[64];

int argc = 0;

char * argv[10];

 

uart_init();

 

while(1)

{

printf(CFG_PROMPT);

 

readline(buf, argc, argv);

}

return 0;

}

这个函数很简单,就一个比较关键的函数readline();这个函数的作用是读取输入,然后解析命令,再去调用相应的命令函数.

第二节 command.c

// 根据命令执行对应的代码

int run_command(int argc, char * argv[])

{

if (argc == 0)

return -1;

 

if (strcmp(argv[0], "help") == 0)

{

help(argc, argv);

return 0;

}

 

if (strcmp(argv[0], "md") == 0)

{

md(argc, argv);

return 0;

}

 

if (strcmp(argv[0], "mw") == 0)

{

mw(argc, argv);

return 0;

}

 

if(argc >= 1)

printf("Unknown command '%s' - try 'help'  ",argv[0]);

return 0;

}

根据不同的命令,调用不同的执行函数。例如输入help命令,调用的执行函数是help()函数。下面来简单地解释各个命令的执行函数:

int help(int argc, char * argv[]):打印帮助信息。

int md(int argc, char * argv[]):读内存,读写内存都只是简单的指针操作

int mw(int argc, char * argv[]):写内存

第三节 编译代码和烧写运行

sd卡插入PCUbuntu终端执行如下命令:

#cd 7.command

#make

# sudo ./sd_fusing.sh /dev/sdb bl2.bin

第四节 实验现象

 

了解更多的信息在http://www.urbetter.net 或是到友坚论坛进行发贴讨论:http://bbs.urbetter.com