回答

收藏

飞凌嵌入式ElfBoard ELF 1板卡-文件IO的方式控制LED

其他 其他 997 人阅读 | 0 人回复 | 2024-10-21

led点灯程序
下面使用一段简单代码来演示如何控制LED,并且让大家了解应用编写时常用的文件I/O模型:

程序步骤如下:
(一)LED1_BRIGHTNESS、 LED2_BRIGHTNESS两个宏分别对应LED1、LED2两个灯的亮度属性;
(二)使用open分别打开两个亮度属性文件,如果错误返回报错;
(三)间隔0.5秒,打开和关闭两个LED灯;
(四)退出时使用close关闭属性文件;
编译源码
此时就有个问题,我们好不容易写好的第一个程序怎么放到开发板执行呢?直接把led.c拷贝到开发板上好像不行,因为led.c是C语言,而开发板只认识二进制程序。如果使用之前ubuntu中介绍过的gcc编译工具,用gcc编译完放到开发板上会发现无法执行,会提示格式错误。

这是因为虚拟机是在电脑上,属于x86架构,而开发板是arm架构,不同架构主机上分别编译运行的话就需要用到交叉编译链。
在虚拟机设置交叉编译链的环境变量,查看环境变量$CC:

这个$CC变量就是交叉编译器arm-poky-linux-gnueabi-gcc + 配置参数。
首先创建led.c文件,将上面代码添加到led.c文件,保存退出并编译:

ELF 1板卡验证
将生成的可执行程序led拷贝到开发板:

在开发板执行程序:

观察现象,可以看到红绿灯同时循环闪烁。

分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条