Linux环境下开发板Tiny4412应用,实现交叉编译及minicom的调配,将代码编译后下载到开发板并运行

一、实验目的

1.熟悉Linux环境,学习使用命令行操控计算机系统,学会基础的ubuntu机器操作。
2.初步学习使用开发板Tiny4412,查看实验说明以及开发板说明书,学习基本使用步骤。
3.安装交叉环境,调试环境配置,编译代码程序。
4.开发板下载程序并运行程序,实现多个程序的准确运行。
5.完成实验要求,多次熟练实验操作,找到并解决实验中的问题,自己对实验内容有一定的理解与心得体会。

二、实验要求

1.C 语言编程基础。
2.掌握在 Linux 下常用编辑器gedit,vi的使用。
3.掌握 Makefile 的编写和使用。
4. 掌握 Linux 下的程序编译与交叉编译过程
5. 掌握minicom使用
6. 熟悉Tiny4412开发环境

三、实验内容

Tiny4412用户手册.pdf 4.7的全部实验,实验源码examples-tiny4412-20131010.tgz,嵌入式Linux应用程序实例,hello及examples目录下的实验,编译,下载到开发板,运行。
1.编译eamples中的所有例子。
2.使用minicom下载到开发板。
3.使用minicom在开发板上直接运行。

四、实验环境

(含主要设计设备,器材,软件等)

硬件:电脑一台、Tiny4412开发板一块、开发板相关电源线传输线等若干。

软件:Linux 乌邦图系统、交叉编译环境、minicom串口调试工具等相关软件。

五、实验内容

一、实验准备
实验开始前老师发放了本次实验的相关材料,包括about minicom文档、arm-linux-gcc-4.5.1-v6-vfp-20120301压缩包、eameples-tiny4412-20131010压缩包、Tiny4412板子使用手册、以及第一次实验说明。
将压缩包传入微云及QQ邮箱,方便在实验室电脑使用,仔细阅读第一次实验说明文档,发现文档中一些内容相当陌生,按步骤粗略读一遍后在实验室一步步操作。
乌邦图系统自带火狐浏览器,进入百度下载压缩包,将压缩包解压并存储种在home/pc中。解压命令在网上查找得到,也可以直接拖拽文件夹放入。按Ctrl+Alt+T打开终端页面,输入命令sudo -s进入临时root模式,上网查找可以直接用-su进入完全root模式,本次实验使用sudu -s。
之后阅读实验说明进入实验配置。

二、实验配置

进入root权限模式后,根据文档第八条进行初步配置。

1.首先我们得按把arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz拷贝到/home/wulj/mydoc/目录下,然后进行解压,但是实验中发现将压缩包直接放在home/pc主文件夹目录更加方便。使用命令“tar xvzf arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz -C /”命令解压这个压缩包。

2.解压后使用命令“#gedit ~/.bashrc”,会弹出系统环境变量表,我们再将语句“PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin”加入环境变量最后,在这里我们如果使用的是-su进入完全root模式,打开的环境变量将和进入临时root模式的不一样,会会造成错误。
3.之后使用命令“# echo $PATH”来查看路径,使用“# apt-get install lsb-core”来下载相关的文件,如果不适用这条语句,语句“#arm-linux-gcc –v”语句会报错没有这个文件或目录。
4.再接下来将另一个压缩文件解压,解压路径一样放在home/pc中,这样便于我们进行.c文件的编译。
5.配置好了交叉环境,我们就可使用minicom来进行串口调试设置了,在root模式下使用命令“sudo minicom”进入minicom功能界面,这个功能界面的各种功能在百度也可以找到,我们首先得通过“Filenames and paths”去设置发送和下载的路径,“Download directory”路径是连接的板子的路径,是版子下载我们程序的保存路径,我们可以岁随意设置一个,比如/home/pc/down。“Upload directory”路径的我们保存编译后的代码的位置,所以我们得谨慎设置,我设置为第二个压缩文件解压后的根目录,因为编译后的文件会保存在原未编译文件的地址,我们要测试多个程序,所以将编译后的文件剪切到解压源文件的根目录,这样可以很方便。再接下来我们配置串口属性,串口名得配置为ttyS0,不能为ttyUSB0,不然二次进入minicom就会显示找不到这个ttyUSB0,查阅百度得知,Linux系统未识别这个串口,如果是虚拟机得去进行相关设置,所以我们不能一味地根据实验指导进行实验,得加入我们的思考与判断。同时将“Hardware Flow Control”改为No,不然看不到输入,只能看到输出。
6.接下来就可以去编译我们要实验的文件,在编译前一定要先进入这个文件的文件夹目录,之后使用命令“ arm-linux-gcc 文件名.c –o 编译后的文件名”格式进行相关文件编译,编译后对话框没有提示,但我们在这个未编译的文件夹处可以看到产生了相关的文件。
7.之后我们再次进入minicom模式,Crtl+A 再按S进入Zmodem块,你会看到你编译好的文件,按空格选中文件,再按回车使得文件写入板子,之后会提示成功的信息。
在初始root界面输入“/”加上你编译后文件的文件名,在电脑上就会看到文件开始运转,我选择的pwm文件,板子会发出蜂鸣声,并且转动板子会看到屏幕上显示的重心信息,重心信息会随着板子动不断的出现。另一个abc的文件会不断的出现几组随机数。

三、实验结果
1.连接板子后的显示信息

在这里插入图片描述
2.编译后准备写入板子的文件
在这里插入图片描述
3.写入成功的照片
在这里插入图片描述
4.重心显示
在这里插入图片描述

四、实验总结
在实验中我遇到了很多问题,但是也有了很大的收获,对本次实验有了一个很好的了解。在初始实验时,因为实验说明较为复杂,且在word文档下很多东西显示不是很明显而犯了很多错,在开始输入命令时需要进入root模式,但是在输入命令时空格不太明显导致进入不了root模式,之后也因为空格的问题大大懈怠了实验进程。在进入root模式后相关指令前自己加上了“#”这个符号,但是系统不会提示错误,所以对话框一直无反应。实验一文档前后顺序有点混乱,我们得先去第八块学习解压等命令,之后再从头开始,所以刚开始没有通读实验说明导致实验一直没有进展。在配置系统环境变量时,要是进入完全root模式则会造成错误,只能进入临时root模式,在添加命令时文档中说修改最后一行代码,其实应该是将我们要添加的代码放入最后一行,我第一次是删掉了最后一行再加入新命令,导致系统错误。在设置目录时一定要知道那两个目录的含义,刚开始做未完全理解,导致编译时一直找不到文件地址。编译文件时得进入文件的地址后再输入编译命令,不然会找不到文件。Minicom设置后得按键保存,不会自己保存设置。Minicom退出指令为“Ctrl+A”后再按x。在加入编译文件时得按空格选中。把文件写入板子后得退出到最开始的root模式,写入命令“/”加上你刚写入的文件的名字,之后就会跑起来。
软件的陷阱有很多,但是慢慢摸索查找相关资料下,问题都会一一解决。在实验中反复确认软件没错后,如果还是出问题,那么让我们要及时确认是不是硬件出现故障,实验时的器材是反复使用的,基本上多多少少会出现一些问题,我在做实验时第一套板子连接电脑后会不断传输乱码,导致word文档提示按钮也变成了乱码,而且有的板子蜂鸣器出问题,不会蜂鸣等。
这次实验在多次进行后得到了很好的反馈,我得到了很多知识与经验。

实验材料TAR格式云盘不支持分享。本博客仅做学习记录。
在这里插入图片描述

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 嵌入式Linux点灯实验通常涉及以下步骤: 1. 准备硬件:选择一个嵌入式开发板,例如Tiny4412,连接电源和串口线,以便通过终端程序与开发板进行交互。 2. 下载编译内核:从开发板制造商的网站上下载适用于该板的内核源代码,并使用交叉编译工具链编译内核。在内核配置时,需要确保启用GPIO子系统以及相关的GPIO驱动程序。 3. 编写应用程序:使用C或Python等编程语言编写一个简单的应用程序,用于点亮或熄灭开发板上的LED灯。该应用程序可以使用GPIO用户空间API来控制GPIO引脚。 4. 将应用程序复制到开发板上:使用FTP或SCP等工具将编译好的应用程序复制到开发板上,并在终端上运行应用程序。 5. 调试:通过查看终端输出,可以检查应用程序是否正确地控制了LED灯。如果出现问题,可以使用GDB等调试工具进行排查。 需要注意的是,嵌入式开发需要具备一定的硬件和软件知识,建议在实验前先学习相关的嵌入式Linux开发知识。 ### 回答2: 嵌入式系统是指将计算机技术与其他领域相结合,设计出适应特定应用领域的硬件系统和软件系统。其中,Linux系统是嵌入式系统中使用最多的操作系统之一。本篇文章将介绍如何使用Linux系统进行嵌入式设备的点灯Tiny4412实验。 首先,需要先了解一下Tiny4412开发板的一些基本信息。Tiny4412是一款基于ARM Cortex-A9的嵌入式开发板,具有4核CPU,1GB内存和8GB扩展存储空间。该开发板还集成了多种外设,如4.3英寸液晶屏、USB接口、以太网口等,可以满足各种嵌入式系统的应用需求。 接着,我们需要对Tiny4412开发板进行连接和配置。首先将开发板连接到计算机端,并使用串口线连接开发板和计算机、通过串口终端对开发板进行配置。启动开发板后,进入系统终端,创建一个新的文件夹用来存放程序。cd ~ // 进入主目录,输入mkdir tiny4412_led // 创建新文件夹,输入cd tiny4412_led // 进入新文件夹,输入 接下来,下载并安装软件工具链。需要先下载安装arm-linux-gcc-4.4.3工具链,这个工具链是基于 ARM926EJ-S 架构的版本。输入以下命令下载并安装: sudo apt-get install zlib1g-dev libncurses5-dev libssl-dev sudo apt-get install gcc-arm-linux-gnueabi 安装完成后,我们就可以编写点灯程序了。首先,在tiny4412_led文件夹下新建一个C语言文件led.c,需要注意的是,由于Tiny4412采用了GPIO作为点灯的控制接口,因此需要引入头文件gpio.h、stdio.h、stdlib.h和unistd.h。代码如下: #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include "gpio.h" #define LED5 110 int main(void) { GPIO_Handle gpio; int led = LED5; gpio = GPIO_Init(); if (gpio == NULL) { fprintf(stderr, "GPIO_Init failed\n"); return 1; } GPIO_SetDir(gpio, led, GPIO_OUTPUT); while (1) { GPIO_SetValue(gpio, led, 1); sleep(1); GPIO_SetValue(gpio, led, 0); sleep(1); } GPIO_Fini(gpio); return 0; } 上面的代码定义了一个引脚(LED5)来控制灯的亮灭,通过GPIO_SetDir函数设置该引脚为输出模式,进入一个无限循环,每隔1秒钟,将LED5的输出电平设置为高电平和低电平,实现LED灯的闪烁。 编写完程序后,使用命令行编译该程序: arm-linux-gnueabi-gcc -o led led.c 然后,将编译生成的可执行文件(led)拷贝到Tiny4412开发板上: cp led /mnt/nfs/root/tiny4412_led/ 最后,在Tiny4412的终端输入以下命令运行程序: ./led 由于程序是一个无限循环,因此,LED灯会一直闪烁,知道我们手动停止该程序。通过上述方式,我们成功实现使用Linux系统进行嵌入式设备的点灯Tiny4412实验。 ### 回答3: 嵌入式系统是指在电子设备中嵌入的小型计算机系统,用于控制或监控设备的运行Linux是一种自由、开放源代码的类Unix操作系统,广泛应用于服务器和嵌入式系统中。点灯实验是一项基础实验,通过控制LED点亮和熄灭,来了解嵌入式系统的基本操作和控制。 本文将介绍如何在嵌入式系统中运行Linux操作系统,并通过点灯实验控制LED灯的点亮和熄灭。 实验材料: - Tiny4412板子 - USB转串口模块 - 文本编辑器 - Linux交叉编译工具链 - LED灯 步骤1. 安装Linux操作系统 首先需要在Tiny4412板子中安装Linux操作系统。可以通过交叉编译工具链将Linux内核和根文件系统交叉编译到SD卡中,然后将SD卡插入到Tiny4412板子中,并启动板子。 步骤2. 连接USB转串口模块 接下来需要将USB转串口模块连接到Tiny4412板子上,然后通过串口工具连接到板子。 步骤3. 编写LED控制程序 使用文本编辑器编写LED控制的C程序。通过控制GPIO口实现控制LED点灯。LED灯连接到Tiny4412板子上的GPIO口。 步骤4. 交叉编译程序 使用交叉编译工具链将程序交叉编译Linux系统中。将编译生成的ELF文件拷贝到Tiny4412板子中。 步骤5. 运行程序 使用命令行启动编译生成的ELF文件。此时就可以通过程序控制LED的点亮和熄灭了。 总结 通过上述步骤,我们就可以在Tiny4412嵌入式系统中实现Linux操作系统和点灯实验。这些步骤并不是非常困难,只需要一点编程基础和嵌入式系统相关的知识即可。嵌入式开发是一门非常有前景的技术,希望本文对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值