一。搭建嵌入式开发环境

系统环境:ubuntu13.04

开发板S3C6410


1.先配置minicom

 PC:            //注:指明在PC终端下                
#sudo minicom -s
不能同时打开2个minicom

选择
"Serial port setup"     回车
修改设置
                        分别按A E F键,再修改
"A -         Serial Device     : /dev/ttyUSB0"        //:dev/ttyS0 使用串口时设置S0,使用USB转串口时设置USbS0
"E -        Bps/Par/Bit    : 115200 8N1"    //115200 串口的波特率;8N1 8:8个有效位 1停止位 N没有校验位
"F -    Hardware Flow Control    : No"
选择
"Save setup as dfl"        回车   //永久保存
选择
"Exit"                    回车

下一步:

     运行minicom

      sudo  minicom


2.烧写bootloader

bootloader使用的是uboot,源码可以取官方下载,配置编译一下,具体怎么配就不详细说了,自己动手查查吧

第一步:
***"烧写SD卡u-boot"***
{
PC上:
(1).插入SD卡,#fdisk -l查看SD卡设备名,卸载SD卡
(2).Usage: write_sd  <Output file>  <Input file>
   ./write_sd /dev/sdb u-boot-movi.bin
}

ARM:
调整板子的启动模式为SD卡启动
{
(1).set serverip 192.168.1.10     //设置主机IP
    set ipaddr 192.168.1.20        //设置ARM板IP,关闭防火墙和SELinux,软件指定。
    ethaddr=00:40:5c:26:0a:5b        //u-boot MAC地址
    set bootargs "root=/dev/nfs nfsroot=192.168.1.10:/nfsroot ip=192.168.1.20 console=ttySAC0,115200"
(2).save
(3).tftp 50008000 zImage        //此步可能需要重复一次
    bootm 50008000                //50008000开发板的内存地址,bootm启动内核专用的命令

注意啦:ARM:[u-boot-nand]/[u-boot-sd]        //注:指明在ARM板子的终端下    ,串口属于中断设备
命令:pri
显示环境变量

命令:set 变量名    变量值
改变环境变量
注:临时生效,若要永久生效需要save(回车)


对于如何配置ubuntu的tftp,请看,http://blog.csdn.net/u010670794/article/details/12256271


3.搭建网络文件系统

搭建网络文件系统
1 mkdir /tftproot
2 chmod 777 /tftproot
3 tar -xvf rootfs.tar -C /nfsroot  //将已做好的网络文件系统解压到/nfsroot下
4 cd /nfsroot
5 vim /etc/exports //设置共享目录
/*
 /nfsroot *(rw,sync,no_root_squash) *表示任意IP地址,sync表示同步,no_root_squash如果你是root用户,加上这个选项还是root用户的权限操作该目录,不加就是普通用户的权限
*/
6 service nfs restart //重启nfs服务
7   复位重启板子
8 ctrl+A 松开后按w  //输入字符自动换行
9 set bootargs "root=/dev/nfs nfsroot=192.168.1.10:/nfsroot ip=192.168.1.20 console=ttySAC0,115200" //告诉板子其根文件系统在网络的哪里。root=/dev/nfs 表示根文件系统的位置,nfsroot=192.168.1.10:/nfsroot ip=192.168.1.20主机ip和板子ip,console表示控制端,ttySAC0指设备的控制终端
10 save //保存
11 tftp 50008000 zImage  //重新下载内核
12 bootm 50008000 //重启ARM板内核
13 set bootcmd "ping 192.168.1.166;tftp 50008000 zImage;bootm 50008000" //自动重启内核,必须加 " "

对于如何配置ububtu下的nfs,请看:http://blog.csdn.net/u010670794/article/details/12255875


4.校正屏幕

两种方法:

/* 新的 */
14 ps  //查看执行的进程
15 kill  1135  //杀死pic -qwc 进程
16 /tslib/bin/ts-calibrate   //矫正屏幕(可Tab键补齐)
17 pic -qws &   //用户界面后台执行

/* 旧的 */
14 cd /etc //进入目录
15 rm pointercal //在开发板上执行,删除文件

至此就配好了,这样子写程序需要交叉编译,在电脑上编,板子上跑。


##############################################################################################################

前面所写的都是基于SD启动的;下面实现Nand flash启动方式:

第一步:
***"烧写nand flash u-boot"***
{
ARM:
(1).tftp 5000,0000 u-boot-nand.bin   

          在执行之前一定要保证板子和主机能ping通

         可能需要重复执行一次,保存在DDR中

         这是在sd卡启动方式下执行的
(2).nand erase    //erase all NAND flash
(3).nand scrub    //标记坏道(只需作一次)
    <y/N>
    y    回车
(4).nand write 5000,0000 0 4,0000   

                //DRR起始地址(可以改变),nand flash起始地址,bootloader总长度。把u-boot-nand.bin写到bootloader,可以以NAND模式重启。
                //nand write <源文件起始地址> <写到位置的起始地址> <长度>++++我认为这是截至地址++++++
(5).切换到NAND启动方式,重启
(6)tftp 5000,0000 u-boot-nand.bin   

          重写,为了稳定

(7).nand erase 0 40000        //擦出(4)步写入的u-boot-nand.bin++++
(8).nand write 5000,0000 0 4,0000    //与(6)中源文件起始地址要一致,nand只能1可以变成0,但0不能变成1,要变成1就得擦除,就是全部写1,nand是十六进制
(9).reset

}
第二步:
***"下载内核并写入NAND Flash"***
{
(1).tftp 5000,0000 zImage        //下载内核到DDR
(2).nand erase 4,0000 30,0000    //擦出(NAND中kernel的)起始地址,终止地址
(3).nand write 5000,0000 4,0000, 30,0000    //内核写到NAND中kernel中
(4).nand read 50008000 4,0000 30,0000        //从NAND中kernel读入到DDR
(5).bootm 50008000
第4步和第5步之间可以做一下2步,或者在第五步reset后做
----------------------------------------------------
(6).set bootcmd "ping 192.168.1.10;nand read 50008000 4,0000 30,0000;bootm 50008000//开发板"    //设置自动运行
(7).save
----------------------------------------------------
(8).reset
 9,set bootargs "root=/dev/mtdblock2 rootfs=yaffs2 console=ttySAC0,115200"
10,挂载文件系统
}


你可能感兴趣的:(嵌入式,文件系统,ARM,u-boot)