更多配套资料CSDN地址:点赞+关注,功德无量。更多配套资料,欢迎私信。
物联技术666_嵌入式C语言开发,嵌入式硬件,嵌入式培训笔记-CSDN博客物联技术666擅长嵌入式C语言开发,嵌入式硬件,嵌入式培训笔记,等方面的知识,物联技术666关注机器学习,arm开发,物联网,嵌入式硬件,单片机领域.https://blog.csdn.net/weixin_39804904?type=blog
上午:嵌入式系统的搭建
下午:烧写bootloader,kernel,文件系统
教学内容:
1、安装ADS;ADS不带系统的程序编写
2、调试开发板,链接开发板
3、安装H-JTAG链接ARM;为了ADS服务的,为了下载程序用的。
4、用x-shell链接开发板;利用的串口通信
5、无操作系统开发流程
先选择硬件-》start(一般芯片厂商提供启动程序)-》初始化接口硬件-》应用
6、有操作系统开发流程
选择硬件-》启动引导程序-》启动内核-》启动根文件系统-》初始化硬件接口-》应用
7、通常基于linux系统的嵌入式开发步骤如下:
1).开发目标硬件系统:如选择微处理器、Flash及其它外设等
2).建立交叉开发环境:安装交叉编译工具链、配置串口通信工具、配置网络通信工具等
3).开发Bootloader:移植Bootloader,如vivi
4).移植linux内核:如linux2.4.18内核移植
5).开发根文件系统:如cramfs文件系统的制作 (移植)
6).开发相关硬件的驱动程序:如LCD、网卡、GPIO等 (一般都是移植,没移植就修改驱动程序)
7).开发上层的应用程序:如网络、QT GUI开发
8、嵌入式linux软件系统由bootloader、kernel、root filesystem构成,如下:
bootloader: vivi u-boot.bin
kernel: zImage uImage (一个内核镜像)
rootfs: rootfs.cramfs rootfs.yaffs
VIVI启动zImage ,u-boot启动uImage
rootfs.cramfs只能读不能写文件系统;rootfs.yaffs可读可写
9、烧写vivi,u-boot zImage 等有三种方式:
win的附件中的超级终端:
启动开始-》附件-》通讯-》超级终端-》取消(位置信息)-》YES-》取名(新的连接)-》确定-》取消(位置信息)-》YES-》连接时选用COM1(波特率115200)。
H-jtag烧写:
LSJF24X0烧写:简单,速度很慢,建议至烧写boot;
第一步:必须烧写vivi或者u-boot;软件可以利用LSJF20X0软件烧写
第二步:如果烧写的是vivi;可以利用H-jtag、LSJF24X0和XP的超级终端下一步烧写;
因为LSJF24X0烧写太慢,所以注重讲解H-jtag和超级终端方法;
超级终端:选用串口,连接开发板,复位,马上按空格;进入vi,利用命令下面
bon part 0 (格式化nand flash,若执行了此命令,需要
bootloader,轻易不要使用)
load flash vivi x(下载image下vivi)(同样也可以传送u-boot)
load flash kernel x(下载image下zImage)
load flash root x(下载cramfs格式的文件系统)
load yaffs root x(下载yaffs格式的文件系统)
分别将前面编译得出的镜像烧入开发板中,以启动我们的开发板。
输入命令之后:点传送-》发送文件(协议选择Xmodem)-》选择文件;
此种方式也可以烧写u-boot; load flash vivi x(传送文件的时候用u-boot就可 以了),接下去通过超级终端把zImage 和rootfs.yaffs一次装完。如果是利用 LSJF24X0烧写的u-boot,就直接跳到第三步。
第三步:根据不同的开发板,按照如下说明,对环境变量进行不同的设定:
命令如下:(中间空格分开)
#setenv bootargs ‘noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0(是零) uda134=old tftlcd=v11’ //设定变量
#saveenv //保存变量
其中: uda134=old(表示老板子声卡接口 s3c2440 board V1.1)
uda134=new(表示新板子声卡接口 s3c2440 board V2.0)
tftlcd=v11(tftlcd module V1.1)
tftlcd=v12(tftlcd module V1.2)
请根据自己的板子进行设定
将主机与开发板通过网线连接,修改访问服务器的ip地址
命令如下:
#setenv serverip 192.168.221.33 (tftp 服务的主机地址,根据自己所处的环境进行设置)
#setenv ipaddr 192.168.221.34 //开发板IP,同上
#saveenv //保存变量
#ping 192.168.221.33 //测试网络联通情况,可多试几次,若显示…alive,则表示网络联通正常,否则请检查网络连接
注意:若采用PC机与开发板直连方案,则需将windows IP实现设为静态IP,否则windows ip会因网线断开而获得不了ip。
在本机建立tftp 服务:并设定linux 相关镜像路径到linux_platform_2.6.34_image目录,如下图:
注意:有时候此软件获得不了本机IP,可以关闭软件,在上一步ping 完成后快速打开,可解决此问题。
下载 内核(kernel) 以及 文件系统(root)
命令如下:
#update boot (如果之前存在u-boot,即可更新u-boot)
#update kernel
#update yaffs (时间比较长,请耐心等待。。。)
重启开发板
串口:com1或serial
并口:LPT
校正鼠标:
ts_calibrate命令校正屏幕;
解决每次自动进入QT系统的问题?
ps显示进程,找到fluidlauncher -qws;
kill杀死这个进程;
再次运行的方法:
找到fluidlauncher;在/urs/qt/bin/
./fluidlauncher -qws &
每次开发板复位都要重新设置的问题?
把配置放在/etc/profile里面可以让配置命令每次自动执行。
其中加了#的是不执行;
cd /home
ifconfig eth0 up
....
mount ...
这些命令都是重启之后要重新设置命令;输入到profile后,每次复位会自动设置。