专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
NXP
【AWorks试用体验】嵌入式初级玩家养成计划--GPIO点亮AP板上的LED
2019-07-15 17:43
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
NXP MCU
12476
3
1260
小伙伴们,大家好。进过几天的研究,今天给大家说说怎么通过
Aworks
上面的
GPIO
口来点亮
AP
板上的
led
,当然本次是通过宿主机上的命令进行点亮,非程序。
点亮
LED
是每个做
单片机
工程师都非常熟悉的操作,每个工程师都有那么一次
-----
第一次使用某个
MCU
点亮
LED
的兴奋。今天
mx283a
也不例外。
好了,话不多说,直奔主题。
今天所涉及的
linux
知识如下:
mount -t nfs 192.168.1.91:/nfsroot /mnt -onolock
开发板
挂载
192.168.1.91
宿主系统的目录
cp filename path
复制文件到
path
su root
获取
root
权限
poweroff
关机
reboot
重启
ssh
name@ip
登录远程设备
exit
退出终端
/
断开远程设备
echo value > status
/
修改寄存器值
比如更改
led
状态
mv new.c nwe0.c
修改文件名
rm -rf
floder
删除文件夹
floder
insmod xxx.ok
安装驱动
rmmod
xxx.ok
卸载驱动
涉及的
嵌入式
知识有:
编译内核,驱动编译,驱动安装,挂载。。。。
首先是需要进行内核编译,原因是编译了内核才能编译驱动,因为驱动编译需要指定内核路径。
我下载的光盘自带的
gpio_driver.ok
不能正常
insmod
,估计是内核版本不一致,于是就需要重新编译。
编译内核:
首先将光盘下的
linux-2.6.35.3.tar.bk2
复制到宿主
linux
下面,可以通过远程挂载的方式放进去,我是安装在虚拟机里面的,所以直接将
win
下的所有分区都挂载了进去。将该文件复制到
linux
文件根目录下,即
Home
下面。
打开终端,输入
tar -jxvf linux-2.6.35.3.tar.bk2
解压文件,解压完后会在
home
下出现
linux-2.6.35.3
文件夹,
使用
cd
进入到
linux-2.6.35.3
下面,使用
./config-kernel
命令选择板子的型号。
这里义无反顾的选择
4
,然后回车,然后再命令提示符下面键入
make
命令开始编译内核,需要将近
10~20
分钟时间编译完成。
编译完成后将光盘下的
gpio_driver
文件夹复制到宿主
linux
下的
Home
目录下,
使用
cd
命令进入该文件夹,使用
vi Makefile
修改
Makefile
文件,指定
linux
内核代码目录:
我放在了
Home
根目录下面,所以路径指定如上,
zbr
是本
linux
的计算机名。修改完成使用:
wq
命令保存退出。
然后在该目录下使用
make
命令,编译驱动文件,编译完成会生成新的
.ok
文件。编译时间仅需要
5~6
秒。
然后将
gpio_driver
文件夹复制到之前设置的
nfs
文件夹下,用来挂载到开发板上,因为驱动是给开发板安装的。
复制完成后,给开发板通上电,连上网线,在
linux
终端下输入
ssh
root@192.168.1.40
登录开发板,
192.168.1.40
是我的板子的
IP
地址,肯定和你们的不一样。
登录上板子后,使用
mount
命令来挂载宿主机上的
nfs
文件。
没有报错说明挂载成功。上面的
ip
是宿主机的
ip
,
nfsroot
是所要挂载的目录,
mnt
是开发板的挂载目录。
使用
cd
命令进入
/mnt/gpio_driver
目录下,然后使用
insmod
安装驱动。
$insmod gpio_driver.ok
回车没有报错说明安装成功。
是否真的安装成功这样做,使用
ls
指令查看:
若看到这个界面说明安装成功。
然后就可以使用
echo
指令来控制
io
口的电压了。
使用
echo
控制
1.17
端口的电压为
0
:
然后使用万用表测试得到:
再将其设置为
1
:
使用万用表测试的:
测试结果为
3.26V
,去掉误差实际就是
3.3V
。有了这个结果我们就可以控制
led
了。
能够看出,只要将所对应的
GPIO
设置为低电平就能够点亮
lED
了,那么问题来了,到底谁才是“所对应的
GPIO
“呢?首先看下图:
所以的
LED
和
KEY
都被引到了
J8A
这个端子上面,也就是说开发板并没有给
LED
分配
io
口。
既然如此我们就得自己给其分配端口了,看下图:
黄 {MOD}区域就是
led
等的区域了,红 {MOD}的为
led
的插针接口,蓝 {MOD}为给
led
分配的
GPIO
口。
对应关系为:
LED1--------gpio-P3.26
LED2--------gpio-P3.22
LED3--------gpio-P3.20
LED4--------gpio-P2.7
下来就是用套件里面的短接片将其连接起来:
连接起来的样子。
为什么有个灯亮了?因为我之前设置过这个端口。
使用
echo
将
4
个
led
都点亮。
瞬间惊叫有没有?
然后为毛第二个不亮?根据我多年的点亮
led
经验看,不是这个口坏掉了,就是
led
闪了,或者就是其他问题了,这个是我给我自己留下的问题。
基本情况就是这样了。呸,这句当我没说。以上就是点亮
led
的全过程,篇幅不长,我却研究了好个晚上,其中各种抓狂啊!到现在为止我的内心都几乎是崩溃的。。。。。。。
好了,不多说了,今天的成果就分享到这里,祝
论坛
越办越红火,大家晚安。
----
愿世界充满幸福!
------To BeCon
ti
nue
!
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
suyong_yq
2019-07-15 23:07
非常不错啊!
加载中...
查看其它3个回答
一周热门
更多
>
相关问题
手把手学会例程系列:i.MX<二>:图解i.mx53源码补丁+烧录(...
59 个回答
从零开始MQX开发之二 创建与调试MQX项目
24 个回答
7009: Trim value invalid, value is blank or zero是什么错误
0 个回答
怎么头像消失啊?
23 个回答
求推荐KINETIS评估板:必备USB HS,ETHERNET
5 个回答
相关文章
基于IMX6Q移植uboot2018-09——添加单板
0个评论
IMX6UL定时器按键消抖实验
0个评论
I.MX6U处理器LED灯点亮汇编程序代码编写
0个评论
在NXP I.MX6上做一个基于Opencv和OpenGL的打砖块游戏
0个评论
【RFID安全】浅谈卡片破解
0个评论
LM75a
0个评论
emwin字库制作及汉字显示
0个评论
STM32学习之I2C
0个评论
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
NXP
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
一周热门 更多>