1. 前言 tiny4412开发是友善之臂推出的android、linux学习开发板,cpu采用三星的exynos4412,32位芯片,属于cortex-a系列,主频是1.5ghz,可以运行ubuntu、android5.0、纯linux等操作系统。
这篇文章就介绍利用这款开发板完成裸机开发,不涉及操作系统,直接当做单片机一样,完成led灯、蜂鸣器的编程,了解这款芯片与常规的cortex-m系列芯片编程有何区别。
核心板如图:
下面是开发板的实物图:
开发板的配置:
2. 搭建交叉编译环境 进行裸机编程之前,需要先搭建交叉编译环境,安装arm-linux-gcc交叉编译器,交叉编译后的程序才能在开发板上运行。
什么叫交叉编译? pc机编译、在嵌入式开发板运行这种模式就叫交叉编译。
交叉编译器在开发板的光盘里有提供,直接拷贝到pc机linux下解压,配置环境变量接口。
详细操作步骤如下:
1. 在linux用户目录下创建一个目录: mkdir work/arm-linux-gcc -p 2. 将交叉编译器拷贝到linux系统共享目录。再解压到arm-linux-gcc目录下。 tar xvf arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz -c /home/wbyq/work/arm-linux-gcc/ 3. 添加系统环境变量 (1). root用户: 需要将代码写在/etc/profile文件中 (2). 普通用户: 需要将代码写在 用户目录下的.bash_profile文件中 profile文件系统上电的时候会自动执行。 添加环境变量的命令: export path=/home/wbyq/work/arm-linux-gcc/opt/friendlyarm/toolschain/4.5.1/bin:$path 参数: export 导出--全局声明 path 系统环境变量的名称. 作用: 保存linux系统可执行文件的搜索路径. 输出环境变量的值: [wbyq@wbyq ~]$ echo $path /home/wbyq/work/arm-linux-gcc/opt/friendlyarm/toolschain/4.5.1/bin:/usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/wbyq/bin export ld_library_path=/mnt/hgfs/linux-share-dir/sum:$ld_library_path 参数: ld_library_path 系统环境变量的名称. 作用: 保存linux系统动态库的搜索路径. xxx.so 4. 生效环境变量 (1). 立即生效: 当前终端有效 [wbyq@wbyq ~]$ source .bash_profile (2). 退出用户、重新登录系统,实现永久生效 5. 测试交叉编译器. 学习基本用法 [wbyq@wbyq linux_2021]$ arm-linux-gcc app.c [wbyq@wbyq linux_2021]$ ls a.out app.c [wbyq@wbyq linux_2021]$ ./a.out bash: ./a.out: cannot execute binary file [wbyq@wbyq linux_2021]$ gcc app.c -o app1 [wbyq@wbyq linux_2021]$ arm-linux-gcc app.c -o app2 [wbyq@wbyq linux_2021]$ ls a.out app1 app2 app.c [wbyq@wbyq linux_2021]$ file app1 app1: elf 32-bit lsb executable, intel 80386, version 1 (sysv), dynamically linked (uses shared libs), for gnu/linux 2.6.18, not stripped [wbyq@wbyq linux_2021]$ file app2 app2: elf 32-bit lsb executable, arm, version 1 (sysv), dynamically linked (uses shared libs), for gnu/linux 2.6.27, not stripped复制代码 3. 点亮led灯 如果学习过单片机(51,stm32、msp430、avr之类的)编程,完成当前章节的内容应该就很容易。
要完成led灯的控制,需要完成以下几个步骤:
1. 查看原理图 2. 配置gpio口 3. 控制gpio口输出电平控制led 4. 编译程序: xxx.lds 链接文件 设备: 字符设备、块设备、网络设备 sd卡设备: /dev/sdb 查看块大小: cat /sys/block/sdb/size 单位是块(1块512字节) 5. 烧写到开发板测试 dd iflag=dsync oflag=dsync if=./e4412_n.bl1.bin of=/dev/sdb seek=1 参数: if=./e4412_n.bl1.bin 要写到sd卡上的文件 of=/dev/sdb sd卡设备 seek=1 跳过的块. 一个块==512字节 执行烧写命令: [wbyq@wbyq sd_fuse]$ sudo ./sd_write.sh /dev/sdb ../main.bin 复制代码 (1)查看原理图,查找led的接线位置
tiny4412开发板是分两层设计的,一个核心板,一个底板,led灯是焊接在核心板上面,原理图就得打开核心板这份。
(2)查看芯片手册,了解gpio口如何配置
配置方法也很好理解,在手册里做了详细介绍。led属于输出控制器件,需要将gpio口配置成输出模式。
gpio的模式配置由con寄存器完成,输出控制由dat寄存器完成。
(3)编写代码
360手机N5即将发布, 不止致敬经典更要创造经典!
中国电信联合发布“5G+工业互联网”在水泥领域的应用白皮书
新疆通报风电7月份运行情况,弃风电量和弃风率持续“双降”
斯里兰卡的电动超级跑车Vega EVX曝光百公里加速不到4秒
苹果身后的传感器巨头:意法半导体
(exynos4412)Tiny4412裸机开发-点亮LED
Reno3 Pro 5G智能手机让手机耗电速度不再那么快
高效多功能电烙铁的工作原理_高效多功能电烙铁的优点
如何检查和开启Windows防火墙
电容式传感器的应用_电容式传感器测量电路
智能制造云平台为冷却塔企业降本增效
巧用晶体管测试仪增加高压包在路测量功能
使用晶体管和电流表来测量电感
华为董事长梁华表示华为向西方公司出售5G技术是真心的
蚂蚁金服“2018安全专项科研基金”的最终评审结果正式公布
PyTorch教程-7.3. 填充和步幅
电阻气动加压点焊机 钢筋网片焊接点焊机生产厂家
18寸难产 2020年前全球晶圆产能12寸继续称霸
嵌入式Linux开发之C语言学习秘诀
关于USB2.0 静电保护方案的介绍