更多课程 选择中心

嵌入式培训
达内IT学院

400-111-8989

嵌入式开发流程

  • 发布:达内
  • 来源:网络
  • 时间:2015-07-17 14:21

1.首先,建立交叉编译环境:交叉编译是指:在PC机上编译,在目标板上执行,我PC是linux+ arm-elf-gcc编译器.扳子是ARM3000.板子上的系统是uclinux,这时一个剪裁的很小的实时嵌入式linux操作系统.推荐使用这个.

2.然后就是你写程序喽,不过注意可能有些库函数不能用,因为哪个编译器稍微受限一点,不是所由的c库函数都支持,不过一般开发的都有.

3.连起你的主机和开发板,这个你会不?要连两个:串口(用来控制板子)和以太口(用来下载程序),我们板子上这些外设都有,你要使没有可以用其他的口代替传程序,但串口可是该有的阿!

4.在你主机上编译程序生成目标代码,建议用makefile文件来组织你的联编关系.

5.把生成代码下载到目标板执行调试.我是用的主机的NFS(网落文件)服务,下载到目标板的.

6.注:目标板是怎么控制的呢?是用串口控制的,可用minicom,设置好你要控制的串口,也应该是你连板子的那个.在命令行里敲上minicom,即进入minicom截面,开启你的板子,应该就是板子uclinux系统解压安装的画面了.然后用ifconfig eth0.....

配置ip,这个ip就是你板子的ip了,注意与主机一个网段.然后mount -t nfs 主机ip:/uclinux /板子上的一个目录,就把主机的 uclinux目录放到板子上了(这么说其实不合理,应该叫挂载). 然后找到你刚才一经编译好的哪个目标代码执行即可.

1.流程:明确需求->分析硬件软件可行性(速度,内存,算法等)->硬件选型->原理图设计,layout,制板(同时软件功能模块可开始)->

开发BSP(即所谓的启动程序,各硬件芯片的driver等)->放操作系统上去(如果需要的话)->软件模块加入->测试,,改bug->生产->over。2.首先,小的功能的话,不需要操作系统,一般一个while(1)配合中断完事。

如果要移植,主要是修改与BSP层相连接的部分(如物理内存映射,启动点衔接等),然后在你的开发环境下编译过就行了。3.移植后,你创建出来进程后,把你要跑的简单任务挂到进程中就行了。

即:进程主函数设为你的任务函数,这样进程跑起来后就是跑你的任务。4.linux相对庞大,不易掌握,但功能强大;

ucos短小精悍,但对底层支持度不高。很适合学习时使用。

基本原理都是一样的。5.心得:经验很重要,动手不动口。细心,勤于学习,多问,很多很多。6.如有其他问题,随时Hi我。

我的嵌入式linux开发步骤:

1. 安装虚拟机,见<安装及使用心得>,选择桥接模式

2. 虚拟机串口设置,见;

3. 用交叉网线连接PC&开发板.

4.NFS(PC)设置:见<安装及使用心得>&&< linux开关机脚本相关>

备注: a.nfs的文件权限设置777

b.挂载/卸载nfs时候,注意当前所在文件夹,以免不成功

让PC linux的/etc/rc.d/rc.local里面增加了部分命令,随机启动.如下:

[root@localhost rc.d]# more rc.local

#!/bin/sh

# This script will be executed *after* all the other init scripts.

# You can put your own initialization stuff in here if you don't

# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

ifconfig eth0 10.96.15.169

ifconfig eth0 netmask 255.255.255.0

/etc/rc.d/init.d/smb start

/etc/rc.d/init.d/nfs start

/etc/rc.d/init.d/portmap start

/etc/rc.d/init.d/iptables stop

echo "nfs setup OK from /etc/rc.d/rc.local."

[root@localhost rc.d]#

4. NFS(开发板)设置:见<安装及使用心得>

在开发板设置脚本/usr/yangchu.sh,这样开机运行该脚本来自动挂载

#!/bin/sh

ifconfig eth0 10.96.15.170

mount -t nfs 10.96.15.169:/home/myth /mnt -o nolock

echo “nfs ok!”

此时由于NFS的缘故,可以在开发板mnt文件里看到实时变化的10.96.15.169:/home/myth文件夹的情况.

在开发板/etc/init.d/rcS的最后加入了执行上述脚本的语句,开机会自动运行

这里发现一个问题:发现板子启动时,不会去执行/usr/etc/rc.local文件,而且/etc/init.d/rcS文件包含了/usr/etc/rc.local的所有语句.不晓得这个是不是板子

的一个bug,所以开发商把后者的语句都让前者去执行完毕了.

此外一个小发现记录下来:之前用minicom连上板子后,一直是看不到光标的,这给操作带来很大不便,但无意中发现在minicom执行一个非法操作:cat /usr/1.jpg后会自动退出

minicom.不过重新进入minicom后就可以看到光标了.

5.在PC上编辑hello.c文件分别见虚拟机myth文件,用autotools生成makefile,并用GDB调试.见&

6.在PC上安装交叉编译工具,见<交叉编译场景(arm-linux)分析>:

一般情况下,主机和目标机是同一类型的计算机,这就是正常的编译,没有什么好说的。所谓交叉编译就是在主机上为目标机编译,比如在PC上编译,然后在手机上运行,这种

编译就叫交叉编译.交叉编译需要交叉编译器,不同的目标机(主要是看芯片类型)需要不同的交叉编译器,比如我们这里要介绍的arm-linux交叉编译,所用的交叉编译器就是arm-linux-gcc系列。

使用稳定版本cross-2.95.3.tar.bz2来建立交叉编译环境:

a.将cross-2.95.3.tar.bz2解压到/usr/local/arm,会在该文件夹生成文件夹2.95.3,并删除压缩包cross-2.95.3.tar.bz2

b.在/etc/profile最后行增加环境变量"export PATH=$PATH:/usr/local/arm/2.95.3/bin"

7.利用交叉编译工具,在PC上将步骤6生成的hello.c的makefile生成可在开发板运行的hello

a.修改makefile里的gcc工具

b../configure --host=arm-linux --prefix=/xxx

--host:指定目标机的平台类型。一般格式为CPU类型-操作系统名称。比如,目标机的CPU为arm,操作系统为linux,可以这样写--host=arm-linux。

--prefix:这是安装路径的前缀,即编译结果放置的位置。默认值是/usr或者/usr/local,交叉编译时不能使用默认值,否则它会覆盖你本机的文件,所以要指定一个路径。比如,可以指定为--prefix=/work/cross/rootfs/usr.配置完成后,运行make编译,运行make install安装。

8.做几个里的实验.

9.内核模块编译:见<内核模块编译>:

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:嵌入式系统开发的一般流程
下一篇:达内嵌入式课程体系的八大核心

嵌入式开发流程

  • 扫码领取资料

    回复关键字:视频资料

    免费领取 达内课程视频学习资料

  • 搜索抖音号

    搜索抖音号:1821685962

    免费领取达内课程视频学习资料

Copyright © 2021 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省