实验任务:修改并编译led等的代码,将其拷贝到sd卡上,启动板子后,运行对应代码的可执行文件,最后板子上的led灯会被循环点亮
本篇博客内容:
1.实验步骤
2.注意事项
0.实验前准备
打开Ubuntu,将Demo文件夹拷贝到AM437x目录下,备用。待会的led和串口实验都要用到demo里面的代码
demo文件夹在disk1压缩包里面
1.实验步骤
第一步:使用脚本测试板载LED是否正常
把 "Demo\app\led"目录下的led_loop.sh脚本文件拷贝到sd卡的rootfs分区
使用sd卡启动板子(00110),进入到脚本所在的目录,运行脚本,发现LED等被循环点亮(指导书上网络配置那部分不做,因为我们不通过网络发送文件,而是直接拷贝过去)
第二步:修改代码
找到led应用程序代码,代码在如下目录中:
我们修改flashing_led.c文件里面的代码,只需修改mian函数里面的代码,如此修改:
【1】指定led灯的数量count=4 ;并且指定4个led灯的变量名(系统根据4个led灯的变量名去识别对应的led灯硬件)
【2】注释掉不必要的代码
第三步:编译代码
按照指导书指定的方法,用指定的交叉编译器去编译代码
第4步:拷贝代码,运行代码
把代码拷贝到sd卡的rootfs分区下
使用sd卡启动板子(00110),进入根目录(也就是rootfs分区)
运行我们编译的可执行文件(因为我们修改过代码,所以原本指导书上面 -n 和 3 这两个参数都不重要了,在运行可执行文件时,不需要输入这两个参数)
出现现象:板子的led灯循环点亮
2.注意事项
【1】代码无法编译
注意看报错信息,如果是无法访问某个文件导致的编译失败,就去检查这个文件的权限,将其变为普通用户可读可写可执行rwx
如果还是没有办法,则重新配置交叉编译环境(实验报告第3章)
【2】编译出来的可执行文件无法运行
注意检查该文件的权限,有时候从电脑往sd卡里面拷贝,会导致文件权限改变,比如失去执行权限x ,我们需要使用chmod 777命令修改其权限为可读可写可执行 rwx