第四章 裸机_裸机开发知识补充
来源:互联网 发布:淘宝卖家怎样刷销量 编辑:程序博客网 时间:2024/05/02 02:49
原理图部分:
1.芯片内部上拉功能的使用,在外接按键或者用作中断功能的时候可以将内部上拉功能使能,这样就避免了在外部电路需要接一个上拉电阻。
2.2440的内存控制器会根据CPU发出的地址范围自动将对应芯片的片选端使能,能实现的原因是各个外设映射的地址不一样。
3.协议:
(1)你说的别人能听懂:双方约定信号的协议。
(2)你说的语速要让别人接受:双方满足时序要求。
4.UART:Universal Async Receive/Transmit。
5.CPU认为一个地址对应一个字节,所以RAM地址线从ADD2开始(ADD0、ADD1没有接),这是因为RAM是32位宽度的数据输出。
6.IIC设备可以多个接在同样的总线上,每个设备都有唯一的地址。
7.原理图中,如果一个芯片的某个管脚使用了如nOE/OE(带上划线),则表示这个信号是低电平有效。
8.CPU要访问nand flash需要通过nand flash控制器,而访问nor flash和RAM则可以直接访问。
系统的烧写:
1.USB转JTAG板
2.安装oflash:把oflash.exe以及FTD2XX.dll文件复制到system32文件夹下,然后在windows的运行框中输入oflash就可以执行。
3.创建secureCRT的时候flow control要去掉,否则键盘无法输入。
4.韦东山的uboot在上电之后的前3秒按空格键,会停留在uboot,不按的话直接启动操作系统,注意只能按空格键。
5.烧写裸板程序,DOS命令进入bin文件存放的目录,然后oflsh led.bin回车,然后按提示操作,下载完成之后重新上电即可执行裸板程序(只有wiggler板才需要重新上电)。
6.完全开发手册书上的程序只能烧写到nand flash运行,韦东山给的uboot可以烧写到nand或者nor flash都可以。
7.Jlink只能用来烧写nor flash,烧写好nor flash之后将板子设置为nor flash启动,使用nor flash的uboot来烧写nand flash。
8.韦东山的uboot,按Q可以退出menu,退出之后,输入menu可以再次进入menu。
9.tftp的使用
(1)开发板ip的设置:set ipaddr 192.168.1.24
服务器ip的设置:set serverip 192.168.1.1
保存:save
启动windows下的tftp工具,并设置好当前目录。
(2)测试是否连接正常,用开发板ping命令PC机,注意不能使用PC机ping开发板,因为开发板不会回复ping包。
Ping命令:ping 192.168.1.1
(3)下载文件
Tftp命令:tftp 30000000 led.bin
(4)擦除和烧写
擦除nand flash对应区域:nand erase bootloader
烧写nand flash对应区域:nand write 30000000 bootloader
PS:bootloader表示烧写的位置即大小。
10.在OpenJTAG界面下输入mtd可以查看nand的分区信息。这个分区只不过是一个地址信息,表示擦除的时候从哪里开始到哪里结束。
11.内核的烧写
(1)K命令,使用DNW传送,之后的都是自动烧写。
(2)这个过程可以用tftp实现
下载内核到内存:tftp 30000000 uImage
擦除:nand erase kernel
烧写:nand write.jffs2 30000000 kernel
使用jffs2的原因:nand flash容易出现位反转,写入一页数据里面可能有一位出现位反转,除了烧写这一页数据之外还将校验码烧写进去。
12.文件系统的烧写
(1)输入y,然后使用DNW传送yaffs2映像文件。
(2)输入j,然后使用DNW传送jffs2文件,烧写完成之后,还需要进入到OpenJTAG界面,输入命令:
OpenJTAG>set bootargs noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0 rootfstype=jffs2
OpenJTAG>save
PS:指定rootfstype的原因,如果不指定,内核首先将它当做yaffs进行挂载,如果不成功再尝试jffs2,但是对于大多数jffs2文件系统来说,可以被错误的当做yaffs挂载,但是挂载之后并不能正常使用。
(3)tftp:
tftp 30000000 fs_qtopia.yaffs2
nand erase root
nand write.yaffs2 30000000 $(filesize)
或者
tftp 30000000 fs_qtopia.jffs2
nand erase root
nand write.jffs2 30000000 $(filesize)
PS:不使用boot,因为boot代表的区域很大,如果从内存的30000000开始读取boot分区那么大的内容,可能会给文件系统带来很多没用的东西导致文件系统无法使用。
13.uboot的重启命令:reset
Linux系统的重启命令:reboot
14.ubuntu的镜像必须存放在NTFS格式的盘中,因为FAT32文件系统单个文件最大只支持到4G。
15.虚拟机的网络设置:
(1)vmware打开的Linux机器使用桥接(就是通过一台设备(可能不止一个)把几个网络串起来形成的连接)。
(2)三者(windows,虚拟机的linux,开发板)可互联。互联的方式可以通过PC的有线网卡,也可以通过PC的无线网卡+开发板连接路由器实现。
工具的使用:
1.uboot打补丁
---:表示原来的文件
+++:修改后的文件
# patch –p1 < ../uboot.patch
-p后面的数字表示忽略路径中的前几个斜杠的内容。
2.创建压缩文件
# tar cjf uboot.tar.bz2
3.因为在linux中,点开头的文件都是隐藏文件,你可以到当前目录下通过 ls -a或ls -A命令查看到。
4.SourceInsight添加完目录之后需要同步,同步就是SourceInsight内部生成一些数据库,方便跳转之类的功能。
5.对于韦东山的uboot,可以使用命令:
OpenJTAG> nfs 30000000 192.168.1.19:/work/nfs_root/tmp/test.c
从虚拟机下载文件到开发板。使用这个命令的前提是虚拟机上的nfs服务启动了。
6.设置uboot的启动变量的时候,主机名可以省略,省略的形式就是两个冒号中间什么也没有填写。
7.编译uboot和编译文件系统内核等用的编译器版本不一样。
8.韦东山的内核使用到TQ2440或者mini2440的方法,到韦东山的网盘中下载“韦东Linux视频第1第2期所有源码文档图片芯片手册.rar”下载后找到对应板子的lcd.c拷贝到linux-2.6.22/drivers/video替换到s3c2410fb.c(该文件为内核自带的lcd驱动)拷贝完成之后,修改video目录的Makefile,将s3c2410fb.o修改为lcd.o;另一个需要修改的地方是网卡驱动,拷贝到driver/net目录里面,然后再同样的方法修改Makefile。
9.韦东山所使用的uboot以及内核都是在原始版的代码上打补丁生成的,所以都有打补丁这一步骤。
10.用DNW下载文件的时候,先在uboot界面选择下载之后,然后再打开DNW软件,再选择要传输的文件。
11.win7系统下无法使用DNW软件下载的解决方法:
(1)使用网络下载
1.1 tftp(以下操作是在OpenJTAG页面下输入)
A 首先打开tftp服务器软件(IP保持为同一网段)
B tftp 30000000 uImage
C mtdpart(显示有哪些分区)
D nand erase kernel
E nand write.jffs2 30000000 kernel
1.2 nfs
A 在PC的linux系统终端
# cat /etc/exports
这里打印出来的目录就是开发板可以挂接的目录。
B nfs 30000000 192.168.1.123:/work/nfs_root/uImage(NFS下载命令,开发板上,下载完成之后的umount会卡住一会儿)
C nand erase kernel
D nand write.jffs2 30000000 kernel
(2)使用linux下的DNW下载
A 把linux下的dnw应用程序放到/bin目录
# sudo chmod +x /bin/dnw
# sudo chmod +s /bin/dnw
注:必须让vmware位于前台,再接USB线和开发板,这样linux系统才能识别出设备。如果识别成功的话在,windows的设备管理器的通用串行总线控制器中会有一项“VMware USB Device”。同样也可以在linux终端输入lsusb可以查看到刚才识别出来的USB设备。
B 在uboot界面输入下载命令,然后在linux下执行dnw uImage即可开始下载。
12.远程登录linux时SecureCRT选择SSH2创建连接,而不是Serial。
- 第四章 裸机_裸机开发知识补充
- 0.ARM裸机学前补充知识
- ok6410裸机开发_裸机编程_烧写工具
- 第三章 裸机_第一个裸机程序(上)
- 第三章 裸机_第一个裸机程序(下)
- 第三章 裸机_第一个裸机程序(中)
- 001_<ARM9从裸机到Linux操作系统>____裸机篇____ARM9裸机程序开发环境搭建
- S3C2416裸机开发系列一_裸机开发环境以及启动模式
- 000_<ARM9从裸机到Linux操作系统>____ARM9裸机开发
- S3C2416裸机开发系列七_异常处理
- S3C2416裸机开发系列十_串口打印调试
- S3C2416裸机开发系列十三_电容屏驱动实现
- S3C2416裸机开发系列十八_音频驱动实现(1)
- S3C2416裸机开发系列十八_音频驱动实现(2)
- s3c6410裸机开发介绍
- 裸机开发学习心得
- 裸机开发经验
- 6410裸机开发环境
- Session.Abandon()的用法
- arcgis server 跨域问题
- PostBack和ispostback
- 怎么样才可以让Form表单在加载的时候只自动提交一次?
- 在Gridcontrol上选择某一列,并将其删除
- 第四章 裸机_裸机开发知识补充
- C# 获取当前时间
- 金山毒霸 拦截 某个网址
- 浪潮之巅节选
- Win7配置IIS遇到问题及解决方法:IIS图标不见了
- 虚机能ping通主机但主机ping不通虚机
- Windows Cmd 常用命令
- ORA—00904:“某个参数或者变量名”:标识符无效
- 职场高尔夫趣事