我的嵌入式linux开发步骤

来源:互联网 发布:javascript sleep 1 s 编辑:程序博客网 时间:2024/06/08 16:37

我的嵌入式linux开发步骤:

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

 

2.       虚拟机串口设置,<VMarelinux使用MINCOM通信>;

 

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

 

4.NFS(PC)设置:<安装及使用心得>&<Linux启动流程>&< 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调试.<C编写基础>&<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.cmakefile生成可在开发板运行的hello

  a.修改makefile里的gcc工具

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

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

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

 

8.做几个<S3C2410完全开发流程>里的实验.

 

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

 

10.驱动:

 

 

 

 

        

原创粉丝点击