完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
讯为公司的资料包括源码部分,新接触就是比较吃力,上网找资料,QQ群中询问问题,磕磕绊绊的向前走,终于对uboot有了大概的了解,也学习了make编译命令,总之只是了解大概而已。
目标是智能家居,外设最重要,于是从uboot的外设控制入手: uboot已经可以单独运行了,通过开发板的串口CON3,就是靠近边上的一个串口,(讯为的人真是缺乏规律性,查主板图和核心板图就知道CON3用的是UART2,;而中间标着的CON2用的是UART3) 闲话少说:uboot不需要我们进行移植,其实讯为已经做好了,只要运行目录中的create_uboot.sh 就会自动完成整个uboot的编译工作。 编译工作要在Ubuntu下进行,你要根据讯为资料安装一个pc机上虚拟的Ubuntu空间,uboot其实可以独立运行了,有些像pc机的dos功能了,编译中你可以增加你自己的命令到uboot命令集中。这个命令集就是uboot源码中的common文件夹。 如何添加自己的命令呢: 最简单的方法 :将自己写好的c程序源码文件放入common文件夹下。 1、将my_XXX.c文件放入common文件夹 2、添加 COBJS-y += my_xxx.o 到makefile ,让make编译的时候查找my_xxx.o所对应的my_xxx.c文件进行编译,这样在超级终端中你就可以使用这个命令了。 3、但是c文件还有些格式要求,不同与其他的c文件格式 举个例子大家就清楚了:文件名my_test.c 前面加my_是为了好区分文件名,叫什么都可以,只要在common目录下的makefile中对应就可以了。 #include #include int do_test (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) //可以用int(返回整形) 也可以用void(不需要返回数据),反正也没有人接受,但要与下面内容对应起来,如果用int 最后要有return 0;命令 //do_test 函数变量名称,要与最后一行中的参数4一致,让它知道调用什么函数。 //参数3:参数个数n-1。1代表后面没有参数,因为文件名本身是第一个参数。 //参数4:是一个字符型的数组,包含所以得参数用argv[0]表示命令名,这里就是test,argv[1]代表第一个参数,以此类推 { printf("Hello world!n"); //打印“Hello world!”字符,n 是转义字符串打印一个换行回车。 return 0; //与上面int对应,如果是void不需要这句 } /* --申明命令宏---变量:命令名称、最大参数个数、重复数、命令执行函数、用法、帮助*/ 这是告诉uboot中CMD命令集中添加一个命令test。 //参数1:命令名称,就是我们编译完成运行后,在超级终端uboot命令下键入的执行命令名称,就敲这个test回车就可以执行了//参数2:最大参数个数,就是上面你键入test后所带参数最大数,一般将文件名作为第一个参数,所以不带任何参数是也要最少为1; //参数3:重复数,就是当你执行一次test命令后,在直接敲回车就可以重复执行test命令了,如果为0,不执行。 //参数4:执行函数,与上面的函数名称一致。 //参数5、6:无所谓,没有任何影响;(用法说明,帮助信息,) |
|
相关推荐
|
|
飞凌嵌入式ElfBoard ELF 1板卡-开发环境搭建之交叉编译
637 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-shell脚本编写之输入输出重定向
1385 浏览 0 评论
飞凌嵌入式-ELFBOARD ELF 1外设扩展硬件分享第一期
2128 浏览 0 评论
5188 浏览 0 评论
2263 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-4 19:40 , Processed in 0.761018 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号