基于Tiny6410开发板的应用

更新时间:2024-03-19 作者:用户投稿原创标记本站原创 点赞:20352 浏览:93350

摘 要 : 使用Tiny6410开发板能够加快移动互联终端应用产品的开发,文章详细介绍了安装和配置Tiny6410时应注意的问题,以及使用Tiny6410时出现的问题和解决办法,最后结果表明相关问题的提出对于初次使用Tiny6410进行移动互联终端应用产品开发的技术人员具有一定的参考价值.

Abstract: Using Tiny6410 development board can speed up the development of mobile interconnection terminal application products. This paper introduces the installation and configuration problems of Tiny6410 in detail, and lists the problems and solutions when using Tiny6410. The result shows that the proposition of related issues has certain reference values for the technician who are the first time using Tiny6410.

关 键 词 : Tiny6410;移动互联终端;ARM11

Key words: Tiny6410;mobile interconnection terminal;ARM11

中图分类号:TP399 文献标识码:A 文章编号:1006-4311(2013)23-0210-03

0 引言

随着嵌入式技术的发展,嵌入式系统的应用也越来越广泛,嵌入式已经渗透到了人们日常生活中的方方面面.由于ARM处理器具备高性能、低功耗以及低的优势,所以在进行嵌入式开发时一般选用ARM处理器.ARM11处理器是ARM公司近年推出的新一代RISC处理器,它是ARM新指令架构ARMv6的第一代设计实现[1],友善之臂计算机科技有限公司生产的Tiny6410开发板(以下简称Tiny6410)是一款以ARM11芯片作为主处理器的嵌入式开发板,可以对从事嵌入式开发的人员带来很大的帮助.

近几年来智能手机、平板电脑等智能终端接连出现,各种智能终端互联在一起,出现了很多新的应用,作为开发人员就需要快速的开发出适合市场需要的移动互联终端.对于初次使用Tiny6410进行产品研发的技术人员会遇到了一些问题,作者针对这些问题进行了归纳总结,希望本文对后续使用Tiny6410的开发人员可以起到一定的帮助作用.

1.Tiny6410的功能

Tiny6410的基本功能可以缩短产品研发周期,使开发人员快速完成原理样机的研制,其提供的主要功能如下:

①支持SD-WIFI、USB WIFI、3G上网卡、GPRS Modern拨号上网方式,可以实现无线数据传输.②可以使用GPRS Modem单发和群发短信.③提供音频播放、视频播放、录制音频的功能.④提供了摄像功能,支持SD和USB两种接口方式.提供支持USB接口的条码扫描器功能.⑤开发板的终端不仅为用户提供了交互操作界面,而且用户可以通过终端运行Linux命令,查看系统信息.⑥提供了科学计算和定时功能.⑦支持中文、英语和日语三种语言.

2.安装配置Tiny6410时需要注意的问题

对于初次使用Tiny6410的开发者,正确的安装和配置相关的资源文件,是使用Tiny6410进行开发的前提.

2.1 在安装Linux操作系统Fedora时需要注意版本问题 目前Fedora已经升级到Fedora18,本文的研究是在VMware上安装Fedora9,选择Fedora9是因为Fedora 9经过简单的安装和设置,就可以使用root用户登录(大多数开发均需要此用户权限),Fedora 10及其以后的版本则需要经过比较复杂的设置才能使用root,这不利于不了解Linux的初学者,Fedora 8及其以前的版本兼容性差,因此Fedora 9是最适合初学者的开发平台.

2.2 使用超级终端时需要注意配置问题 在进行端口设置时,每秒位数设置为115200,数据位为8,奇偶校验为无,停止位为1,数据流控制为无.

2.3 使用SD卡脱机快速移植根文件和内核文件时需要注意的问题 使用SD卡脱机快速进行根文件和内核文件移植时需要配置FriendlyARM.ini文件,此时需要注意以下三个方面:

①不同的LCD显示屏型号对应不同的配置信息,Linux-Kernel 等于Linux/zImage_s70对应的是S70型号的LCD显示屏,不同型号的显示屏对应不同的ZImage;

②烧写根文件和内核文件时有yaffs2和UBIFS两种格式,在改变格式时需要更改rootfstype;

以烧写Linux为例,FriendlyARM.ini配置文件如下:

Linux-BootLoader 等于superboot-6410.bin

Linux-Kernel 等于 Linux/zImage_s70

Linux-CommandLine等于root等于/dev/

mtdblock2 rootfstype等于yaffs2 init等于

/linuxrc console等于ttySAC0,115200

Linux-RootFs-InstallImage等于

linux/rootfs_qtopia_qt4.img

Linux-RootFs-RunImage等于 Linux/rootfs_qtopia_qt4.ext3

上面的配置文件安装的Linux系统是yaffs2格式[2].

③在烧写内核文件及根文件系统时串口的配对方式如图1所示,否则无法烧写.

3.使用Tiny6410时遇到的主要问题及解决办法

在使用Tiny6410时,可以把nfs作为根文件系统来启动开发板,这样就可以通过虚拟机直接控制开发板中的资源文件.在开发系统功能时,需要编写相应的接口驱动程序,如何验证编写或者修改的驱动程序是否正确,是否适合相应的硬件也是开发的关键.

问题一:如何通过虚拟机直接控制开发板中的资源文件?

解决办法:配置nfs怎么写作器,具体步骤如下:

①配置网络文件系统nfs怎么写作.首先设置共享目录,以root身份登录Fedora9,在命令行运行:#gedit /etc/exports.然后编辑NFS怎么写作的配置文件(注意:第一次打开时该文件是空的),添加以下内容:/opt/FriendlyARM/mini6410/linux/rootfs_qtopia_qt4 *(rw,sync,no_root_squash),其中:/opt/FriendlyARM/mini6410/linux/rootfs_qtopia_qt4表示将要共享的的目录,它可以作为开发板的根文件系统通过NFS挂接;*表示所有的客户机都可以挂接此目录;rw 表示挂接此目录的客户机对该目录有读写的权力;no_root_squas表示允许挂接此目录的客户机享有该主机的root身份[3].

②启动nfs怎么写作.在命令行下运行#/etc/init.d/nfs start启动nfs怎么写作;可以输入以下命令检验nfs该怎么写作是否启动# mount-t nfs localhost:/opt/FriendlyARM/mini6410/linux/rootfs_qtopia_qt4/ /mnt/,在这里作者提醒读者注意,一定要找到rootfs_qtopia_qt4在哪个目录下面,要依据这个路径设置localhost地址,如果没有出现错误信息,就可以浏览到/mnt目录中的内容和/opt/FriendlyARM/mini6410/root_qtopia_qt4是一致的.

③配置并启动nfs怎么写作后,nfs即可作为根文件系统,开发板的“硬盘”会变得很大,设置开发板为SDBOOT启动,注意需要进入菜单模式,连接好电源、串口线和网线,打开串口终端,输入以下命令:console等于ttySAC0 root等于/dev/nfs nfsroot等于192.168.1.1:/opt/FriendlyARM/mini6410/linux/rootfs_qtopia_qt4

ip等于192.168.1.111:192.168.1.110:192.168.1.11

0:255.255.255.0:linux.arm9.n

et:eth0:off

开发板IP:192.168.1.111

MASK:255.255.255.0 Gateway:192.168.1.110

DNS:202.204.24.35

虚拟机IP:192.168.1.1

子网掩码:255.255.255.0

网关:192.168.1.10

电脑IP--192.168.1.110

通过以上方式,就可以通过超级终端直接访问开发板内部信息.

问题二:如何验证编写或者修改的驱动程序是否适合相应系统硬件?

解决办法:生成正确的内核镜像文件和对应驱动程序的.KO文件,需要按照以下两个步骤执行.

①生成内核镜像文件zImage.打开虚拟机,运行Fedora9系统进入 [ root@localhost?linux-2.6.28.6]# ,输入make即可生成内核镜像文件zImage,该文件所在地址路径为:opt/FriendlyARM/mini6410/linux/linux -2.6.28.6/arch/arm/boot(备注:linux-2.6.28.6是友善之臂提供的).

②把内核镜像文件ZImage下载到开发板中[4].使用SuperBoot作为SD卡中的Bootloader启动系统时,在以下情况可以进入USB下载模式:

(I)SD卡中“images\FriendlyARM.ini”配置文件不存在或该文件名拼写错误.(II)当配置文件存在,且“CheckOneButtons 等于Yes”时重启开发板,没有按下任意一个按键也会进入USB下载模式此时串口将会出现下载所需的功能菜单,同时开发板上的LED1会不停的闪烁,功能菜单图2所示.

将DNW的Baub Rate 改为115200,点击Serial Port 选择Connect 之后输入字母“k”即可出现如图3所示,显示 Now,Waiting for DNW to tranit data ,选择USB Port--Tranit 找到zImage(需要从虚拟机里面拷贝出来),传输结束,键盘输入:b(boot the system)即可.


问题三:如何生成.KO文件?

解决办法:生成该.KO文件需要有对应的Make File和.C程序,本文以Buttons驱动程序s3c64xx_buttons.c文件为例进行说明.

#Makefile for s3c64xx_buttons.c

obj-m :等于s3c64xx_buttons.o

KERNELDIR ?等于 /opt/FriendlyARM/mini6410 /linux/linux-2.6.28.6(这个路径可以任意设定)

PWD :等于 $(shell pwd)

default:

$(ME) -C $(KERNELDIR) M等于$(PWD) modules

在根目录下面建立文件夹zhu,打开Fedora9 的终端,进入zhu,显示[ root@localhost zhu]#后输入make,大概1分钟左右后,即可生成s3c64xx_buttons.ko文件,还有一些其他相关文件.

问题四:如何加载内核镜像文件和.KO文件?

解决办法:打开计算机的超级终端,通过执行命令[root@FriendlyARM /] mkdir friend新建一个名为friend的文件夹(或者找一个已经存在的文件夹)放置.KO文件.进入该文件夹之后,单击鼠标右键,选择发送文件,找s3c64xx_buttons.ko文件,点击发送即可,发送完成,利用 LS可以查看friend文件夹中的文件,接下来就可以对驱动程序s3c64xx_buttons.c进行inod和lod操作了,执行的相关命令如下:

[root@FriendlyARM /]# cd friend

[root@FriendlyARM / friend ]# ls

s3c64xx_buttons.ko[root@FriendlyARM / friend ]# chmod 777

s3c64xx_buttons.ko

[root@FriendlyARM / friend ]# ls

s3c64xx_buttons.ko

[root@FriendlyARM / friend]# inod

s3c64xx_buttons.ko

buttons initialized

[root@FriendlyARM / friend ]# lod

s3c64xx_buttons 3332 0 - Live 0xbf000000

问题五:如何验证加载的内核镜像文件和.KO文件是否正确?

解决办法:以按键测试程序为例进行验证.

按键测试核心程序如下:

//一直读按键并打印按键值和状态

for (;;) {

char current_buttons[6];

int count_of_changed_key;

int i;

//使用read函数读取一组按键值(6个)

if (read(buttons_fd, current_buttons, sizeof current_buttons) !等于 sizeof current_buttons) {

perror("read buttons:");

exit(1); }

//逐个分析读取到的按键值

for (i 等于 0, count_of_changed_key 等于 0; i < sizeof

buttons / sizeof buttons[0]; i++) {

if (buttons[i] !等于 current_buttons[i]) {

buttons[i] 等于 current_buttons[i];

//打印按键值,并标明按键按下/抬起的状态

printf("%skey %d is %s", count_of_changed_key?

", ": "", i+1, buttons[i] 等于等于 '0' ? "up" : "down");

count_of_changed_key++; } }

if (count_of_changed_key) {

printf("\n"); } }

close(buttons_fd); //关闭按键设备文件

return 0; }

测试按键结果如图4所示.

4.结论

本文是作者在使用Tiny6410做了大量实验基础上撰写的,相关问题的提出对于初次使用Tiny6410进行移动互联终端产品研发的技术人员具有一定的参考价值.

注:

致谢:基于Tiny6410开发板的应用研究得到了北方工业大学信息工程学院通信工程系的大力支持,在此表示感谢.