ARM Cortex-A9 (tiny 4412)

发布者:支持中文最新更新时间:2022-01-27 来源: eefocus关键字:ARM  Cortex-A9  tiny 手机看文章 扫描二维码
随时随地手机看文章

要求

移植linux增加系统调用并烧写至开发板


详细步骤

一、搭建linux编译环境

1、GCC 编译器的安装:


tar xzvf arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz  -C/

arm-linux-gcc -v //查看GCC版本

2、gedit ~/.bashrc


export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin

3、reboot -p 重启

4、cp -f tiny4412_android_defconfig .config

make -->编译

5、安装libz.so


yum install zlib.i686

6、挂载红帽6.4iso镜像


mount -o loop rhel-server-6.4-x86_64-dvd.iso  /mnt

yum install zlib.i686

编译 --> make

1)配置yum:


root@localhost 桌面]# cd /etc/yum.repos.d/

[root@localhost yum.repos.d]# ls

rhel-source.repo

[root@localhost yum.repos.d]# cp rhel-source.repo my.repo

gedit my.repo

[rhel-source]

name=rhel-source

baseurl=file:///mnt

enabled=1

gpgcheck=0

挂载红帽6.4镜像mount -o loop rhel-server-6.4-x86_64-dvd.iso /mnt


yum install zlib.i686  (for libz.so ,when build linux)

    yum install minicom*   

    yum install ncurses*.i686  (for libncurses.so, when install adb)  

    yum install libstdc++.i686  (for libstdc++.so,when build android)  

2)minicom串口通信工具的安装:

arm-linux-gcc交叉编译环境搭建:

FriendlyARM/tiny4412


yum install minicom*

cd /usr/bin ls /dev/ttyu*

minicom -s 修改默认设备名为ttyUSB0  硬件设备控制关掉  SAVE

开着minicom, 开关板子会出现log     

烧写SD启动卡:

(1)、红帽6.4系统下插入事先准备好的SD卡;

查看SD卡设备信息,确定设备别名(重要!不可弄错) :

查看SD卡信息 fdisk -l

Ls sd /dev/sd* -ll //此处SD卡设备名为sdb

SD卡设备名

(2)、对SD 卡进行分区 ;

先删除SD卡所有分区:

Fdisk /dev/sdb

命令选项


Command action

a   toggle a bootable flag

b   edit bsd disklabel

c   toggle the dos compatibility flag

d   delete a partition

l   list known partition types

m   print this menu

n   add a new partition

o   create a new empty DOS partition table

p   print the partition table

q   quit without saving changes

s   create a new empty Sun disklabel

t   change a partition's system id

u   change display/entry units

v   verify the partition table

w  write table to disk and exit

x   extra functionality (experts only)

d 删除所有分区

(3)、p 新建1个主分区

分区前需留100M给Supperboot

公式:

SD卡内存*1024M:内存柱数=100M:起始柱面数


如图2 所示32G SD卡总柱面为19165,套用以上公式计算起始柱面为58;

(4)、修改分区的system id 选择 t

(5)、选择分区类型

l -类型清单

b -在此只能选择FAT32格式

(6)、输入w保存退出

(7)、格式化分区

mkfs.vfat /dev/sdb

(8)、烧写boot程序


sync 执行一下同步命令

(9)、把 image 复制到SD卡中 SD启动卡即制作完成

将SD卡插到板子上进行烧机

二、 搭建NFS文件系统环境

1、 安装minicom
配置yum安装源并安装 yum install minicom
2、 配置PC 端NFS服务
1)关闭PC端防火墙 setup
setup

保存退出

临时关闭 iptables service iptables stop

关闭selinux setenforce 0

查看selinux并修改SELINUX =disabled

gedit /etc/selinux/config

2)写NFS配置文件


gedit /etc/exports

/uplookingroot *(rw,sync,no_root_squash)

3)在PC上建立目录 /uplookingroot

用网线连接PC和板子

重启PC reboot -p

4)启动NFS服务 service nfs restart

5)配置IP地址 ifconfig eth0 192.168.1.10 up

测试PC 板子之间的连接 ping 192.168.1.20

6)进入板子 minicom .....

7)挂载目录


mount -t nfs -o nolock,rw 192.168.1.10:/uplookingroot /mnt

8)PC端在/uplookingroot 内编写要传输的文件 minicom端口可见

板子下:cd /mnt

[root@localhost mnt]# ls //可见文件 Hello.c

dnw工具的安装:

tar xzvf dnw-linux.tar.gz

cd dnw-linux/

make

退出挂载 umount /mnt


三、 修改linux内核,增加新的系统调用

1、 解压编译linux源代码,测试当前源代码是否可执行


[root@localhost / ]# tar xzvf linux-3.5-20150121.tgz

cp tiny 4412_linux_defconfig .config

make -j4

ls arch/arm/boot/zImage -ll



2、将zImage拷贝到网络启动的SD卡刷机 //SD卡刷机见一

1)SD卡使用Superboot

[root@localhost install]# ./write4412boot Superboot4412.bin /dev/sdc

start ...........

end .....……

2)同步 sync

3)nfs 环境 //参考二


3、修改linux3.5源码增加系统调用

1) 修改calls.S


[root@localhost linux-3.5]# gedit arch/arm/kernel/calls.S

/* 378 */ CALL(sys_add)

2)gedit /linux-3.5/arch/arm/include/asm/unistd.h


©#define __NR_process_vm_writev (__NR_SYSCALL_BASE+377)

©#define __NR_add (__NR_SYSCALL_BASE+378)

3)


gedit /linux-3.5/arch/arm/kernel/sys_arm.c

asmlinkage long sys_add(int a, int b){

return (a + b);

}

4)编译


[root@localhost linux-3.5]# make

4、将新的zImage拷贝到网络启动的SD卡刷机

5、 做一个动态库


cd /home/material/code/code_driver/02syscall/01user_so

[root@localhost 01user_so]# ls

add.c  add.h  test.c

编译


[root@localhost 01user_so]# arm-linux-gcc -shared -fpic add.c -o libadd.so

[root@localhost 01user_so]# ls

add.c  add.h  libadd.so  test.c

6、生成测试程序


[root@localhost 01user_so]# arm-linux-gcc  test.c -o test -L./ -ladd

[root@localhost 01user_so]# ls

add.c  add.h  libadd.so  test  test.c

7、 将libadd.so 和 test 下载到开发板


[root@localhost 01user_so]# cp -f libadd.so /uplookingroot/. 

[root@localhost 01user_so]# cp -f test /uplookingroot/. 

8、进入板子

挂载共享目录


[roorplooking /mount -t nfs -o nolock,rw 192.168.1.10:/uplookingroot /mnt 

将libadd.so 拷贝到/lib


[roorplooking /cd /mnt                                                                            

[roorplooking /mnt cp libadd.so /lib/. 

测试


[roorplooking /mnt./test

c =

4


四、写应用程序测试系统

由于Supperboot不能支持我们自己修改的内核,重新编译内核


tar -xvf linux-3.5-20150121.tgz -C /root

cd linux-3.5

cp tiny4412_linux_defconfig .config

make -j4

构建刷机sd卡: //由于前面已经给sd分过区,在此省略分区操作

images拷贝到sd卡 把sd卡插入PC


cp /arch/arm/boot/zImage Linux/zImage

vim FriendlyARM.ini

OS=Linux


把sd卡插入开发板进行刷机

将开发板与PC进行连接

minicom

开发板开机

配置PC ip ifconfig etho 192.168.1.10

ping 192.168.1.20 测试PC与板子的通讯

挂载共享目录

[roorplooking /mount -t nfs -o nolock,rw 192.168.1.10:/uplookingroot /mnt

将新的zImage拷贝到网络启动的SD卡刷机

编译


[root@localhost 01user_so]# arm-linux-gcc -shared -fpic add.c -o libadd.so

[root@localhost 01user_so]# ls

add.c  add.h  libadd.so  test.c

生成测试程序


[root@localhost 01user_so]# arm-linux-gcc  test.c -o test -L./ -ladd

[root@localhost 01user_so]# ls

add.c  add.h  libadd.so  test  test.c

将libadd.so 和 test 下载到开发板


[root@localhost 01user_so]# cp -f libadd.so /uplookingroot/. 

[root@localhost 01user_so]# cp -f test /uplookingroot/. 

将libadd.so 拷贝到/lib


[roorplooking /cd /mnt                                                                            

[roorplooking /mnt cp libadd.so /lib/. 

测试


[roorplooking /mnt./test                                                        

c = 

4


效果



关键字:ARM  Cortex-A9  tiny 引用地址:ARM Cortex-A9 (tiny 4412)

上一篇:ARM开发板实现双系统引导的一种方法
下一篇:4412开发板和4418开发板接口区别说明

推荐阅读最新更新时间:2024-11-13 02:58

基于ARM的嵌入式的USB接口设计
随着嵌入式系统的广泛应用,各种小型终端需要开发出与外界联系的USB接口。目前,常用的技术有两种。基于单片机的USB接口,特点是需要外置芯片,电路复杂,留下的CPU资源不多;基于ARM的USB接口,特点是资源丰富,但ARM系列产品较多,如果选型不当,还需要搭接较多的外围电路,且不能很好地发挥CPU性能。 USB(Universal Serial Bus)是通用串行总线的缩写,因其具有方便易用,动态分配带宽,容错性优越和高性价比等特点,现已成为计算机的主流接口。 该设计采用三星公司ARM9核的S3C2440A芯片作为CPU,因为该芯片内部集成了控制USB的所有部件,外围电路简单,易于实现。 1 S3C2440A特点 S3C244
[单片机]
基于<font color='red'>ARM</font>的嵌入式的USB接口设计
ARM白皮书技术关键词:v8、SoC
近日,ARM联合高通发布了技术白皮书,称基于ARMv8-A的高集成SoC(系统级芯片)将引发新一代变革,目前SoC主要基于ARMv7-A架构。 手机芯片中包括了计算、通信等不同处理器模块,但计算模块主要根据ARM处理器搭建,ARM处理器因此有“芯片中的芯片”之称。白皮书披露,超过95%的Android设备芯片基于ARM架构,从25 美元的入门级智能手机到600美元的顶级智能手机。 在ARM披露的业务模式中,高通等“ARM 许可人”将ARM处理器与其他处理器、技术模块集成后,向市场推出各自不同品牌的SoC。 目前,联发科新的4G旗舰处理器MT6595采用了32位的ARM多核处理器,联发科即将新推出的MT6795,外界也预
[单片机]
ARM和台积电合作部署7nm芯片
    ARM和台积电(TSMC)宣布在未来几年深化合作共同创建7nm制程工艺,目前两家公司的重点依然集中在16nm和10nm芯片上。去年夏季的时候,IBM首次宣布创建7nm芯片,尽管这种创新制造工艺由于成本过于昂贵意味着在最近几年无法量产,IBM表示7nm芯片有望在2018年上市,最迟要推迟至2019年。     而英特尔同样加入这场竞赛中,已经退职10nm芯片生产至2017年下半年,这就意味着7nm芯片要在2019年年末和2020年年初的时候上市,这也给IBM和其他企业在前言科技方面超越英特尔的机会。目前尚不清楚台积电何时开始量产7nm芯片,但目前掌握的信息是10nm芯片有望在明年年初上市,7nm则有望在2019年。
[家用电子]
arm汇编b,bl指令浅析
B或BL指令引起处理器转移到“子程序名”处开始执行。两者的不同之处在于BL指令在转移到子程序执行之前,将其下一条指令的地址拷贝到R14(LR,链 接寄存器)。由于BL指令保存了下条指令的地址,因此使用指令“MOV PC ,LR”即可实现子程序的返回。而B指令则无法实现子程序的返回,只能实现单纯的跳转。用户在编程的时候,可根据具体应用选用合适的子程序调用语句。 AREA Init,CODE,READONLY ;该伪指令定义了一个代码段,段名为Init,属性只读 ENTRY ;程序的入口点标识 . . bl delay ;调用延迟 . . mov pc,lr ;返回 下面的在B
[单片机]
基于ARM的嵌入式车载GPS定位系统设计
0 前言 车载定位系统作为车载信息系统的重要部分,利用GPS等装置,以一定精度实现车辆定位,包含位置、速度和行车方向等车辆姿态信息。继一些国家之后,我国一些科研院所和高校也开始研究自己的车载定位系统,市场空前的繁荣。但是传统系统功能单一、集成度不高。随着ARM处理器在全球范围的流行,32位的RISC嵌入式处理器已经成为嵌入式应用和设计的主流。同时嵌入式Linux是一个非常好的免费的操作系统内核,具有稳定、良好的移植性、优秀的网络功能、完备的各种文件系统的支持、以及标准丰富的API等特点。因此,本文提供了一套具有先进性及工程实用性的车载定位系统整体解决方案,使得系统的性能、集成度和可扩展性大大提高。 1 系统的硬件设计 1.1
[单片机]
基于<font color='red'>ARM</font>的嵌入式车载GPS定位系统设计
ARM核心板在智能储枪柜中的应用
  国内枪支管控极为严格,即使是公安部门,集体用枪也要求枪、弹分离保存于专用库(柜)。轻武器一般存储于枪柜中,枪柜源于保险柜的产生之后,主要是为枪支的合理管理而产生的一种专用枪支保险柜。      图1 某型枪柜   枪柜根据内部结构及使用方式的不同可以划分为:普通枪柜、指纹枪柜和数字化网络枪柜等。按存放枪支的不同又可分为:手枪柜、步枪柜、机枪柜、防爆枪柜等。      图2 手枪柜与枪位   随着枪柜的发展以及对枪械管理安全度要求的提高,指纹验证与图像监控正逐步成为枪柜的必备功能,统称为智能枪柜。      图3 枪柜指纹识别   智能枪柜管理系统通过一种或多种身份认证手段,将枪弹柜与网络管理软件全面集成,实现枪
[单片机]
<font color='red'>ARM</font>核心板在智能储枪柜中的应用
ARM 和DSP的地震加速度信号处理系统设计
1 系统构成及工作原理 地震加速度计由传感探头、光电转换及信号处理系统构成.传感探头由采用基于3x3耦合的光纤M z干涉仪和相关机械部分组成.如图1所示,干涉仪的输入端是一只2x2耦合器,输出端是一只3x3耦合器,被测信号加在干涉仪的传感臂上. 干涉仪的两臂光纤分别缠绕在传感头中的上下两个力臂圆筒上,当外部施加振动时,简谐振子施加给信号臂光纤一个纵向的应力,光纤的长度产生变化 △L (应变效应)、光纤芯的直径d产生变化 △d(泊松效应)、纤芯折射率n产生变化 △n(光弹效应),这些变化将导致光纤中光波的相位发生变化.泊松效应相对应变效应和光弹效应造成的相位变化非常小,可以忽略不计,从而即完成加速度信号对光信号的相位调制.参考臂
[单片机]
<font color='red'>ARM</font> 和DSP的地震加速度信号处理系统设计
ARM入门最好的文章 适合菜鸟
我自己在学arm7,不小心在网上看到这篇文章,内容如题,自我感觉他写的不错,因此帖上来供菜鸟们参考,高手就不用看了 该文章作者不详,我在此只转载未做任何修改: 1.抓住51开发ARM 这几个月来我一直都爬在51的问题,自己都有一点笑自己了,用了4个月的时间,来巩固51的原理和程序,还好我自己算是走过来了,自己笨,身边的高才生又看不上51的原理,他们都比较“牛”,说51过时了,你问那个做什么???我比较郁闷!过时吗?我有一点怀疑? 他们不愿意说有他们自己的理由,没有人强求,靠自己好了。 我自己个人的观点:51是一个基础,而且还很重要,这是再我看了ARM之后感觉到的。它可以加速你的ARM学习速度,真得!不相信你试一试好了。 凡
[单片机]

推荐帖子

噪声和运放电路
ADI模拟对话中精典的一篇噪声和运放电路值得一看好书真多啊得好好学学英文了,有些地方看不明白。大大能给份中文的吗?呵呵回复5楼s214215850的帖子不错!!!!!!!!!
安_然 模拟电子
在Zstack的协调器上实现看门狗
现在我的协调器不能停止,因为它是联系整个zigbee网络和上位主控的“交通枢纽”,主控对下面的zigbee网络设备的状态信息都从这个协调器获取,所以不能停止它。即使死了,也要有个看门狗来重启它来恢复整个zigbee网络。我的问题:这个看门狗是软件做好,还是硬件做好;我现在打算用软件做,因为我看了CC2530_User_guide.pdf,里面有讲到TheWatchdogTimer,但不知道Zstack里面有没有实现,我只要调用接口之类的,还是我得修改Zstack,还是其他,求指教在Zst
tanqiuwei RF/无线
手机遥控开关
PREid=question-content这种开关哪能买到,怎样联系/PRE手机遥控开关
qq435792305 模拟电子
MOS管在医用控温毯控制系统驱动电路设计中的VBE1606\VBN1603
一、医用控温毯的实用意义在临床环境下,物理升降温的治疗方法非常常见。物理降温可用于亚低温治疗法,脑组织受损的患者可依赖亚低温治疗(28~35℃)使脑部在血氧不足的情况下有更高的耐受度;物理升温可用于手术或康复治疗,防止术后并发症或全身麻醉时间过长而出现的体温过低情况。传统物理升降温常常采用冰袋冷敷、擦拭酒精、电热毯加热、热水袋热敷等手段来保持患者正常体温,但都难以控制温度,且费时费力,又存在漏电或过度加热致烫伤等风险,而医用控温毯的存在大大降低了医护工作者的工作难度。它
VBsemi 模拟与混合信号
想写一个430串口通讯的上位机.......求科普用哪种语言?
本帖最后由huixianfxt于2014-1-1310:07编辑 功能就是PC接受串口传送的数据,将这些数据在PC机上打点显示图像(也就是一条变化的曲线)。写上位机应该用C++还是VB呢还是C#呢,声明一点本人这几门语言都没学过,只有c语言基础,试问用哪一种语言编写上位机更加容上手,周期短(最好一个月之内)。现在本人在看C++..........求高指点迷津呢........希望能叙述的详细点,谢谢!想写一个430串口通讯的上位机.......求科普用哪种语言?图书馆里有C+
huixianfxt 微控制器 MCU
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved