免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6451 | 回复: 13
打印 上一主题 下一主题

请教串口烧程序 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-13 09:14 |只看该作者 |倒序浏览
因为笔记本上没有并口和串口,所以买了一个USB转串口的工具,现在只能用串口烧程序了,请问串口烧写程序需要什么工具?

论坛徽章:
0
2 [报告]
发表于 2009-05-13 09:40 |只看该作者
那要看你烧写什么东东了?烧写器是什么了?这个问题很笼统

论坛徽章:
0
3 [报告]
发表于 2009-05-13 13:15 |只看该作者

回复 #2 xrqun 的帖子

我想往NANDFLASH中烧写东西。

论坛徽章:
0
4 [报告]
发表于 2009-05-13 13:22 |只看该作者
jtag??

论坛徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵节徽章
日期:2015-03-06 15:50:392015亚冠之大阪钢巴
日期:2015-06-12 16:01:352015年中国系统架构师大会
日期:2015-06-29 16:11:2815-16赛季CBA联赛之四川
日期:2018-12-17 14:10:21
5 [报告]
发表于 2009-05-13 16:31 |只看该作者
没有网口?
没有usb口?
只有个串口的话可能会很慢,要有心理准备呀

文件系统可写的话,用zmodem应该可以

论坛徽章:
0
6 [报告]
发表于 2009-05-13 19:13 |只看该作者

回复 #5 T-bagwell 的帖子

网口有,我想先把Uboot烧到NANDFLASH中,然后通过通过网口下载内核,然后烧到NANDFLASH中去。以前在用台式机有串口和并口,现在手提电脑没有,我买了一个USB转串口的工具,应该可以用当串口用了,我想请教一下用串口怎么样烧写程序?

论坛徽章:
0
7 [报告]
发表于 2009-05-13 20:54 |只看该作者
电脑里面有这个资料,但是没有用过, LZ 可以试试, 如果可以的话, 说一声. 嘿嘿

一、片内启动
1、用Xmodem协议,发送loader.bin和uboot.bin文件,此时uboot.bin被发送到系统的

SDRAM中,发送完后uboot开始运行,如果这时断电或退出,则一切将从头开始,因为SDRAM内存储的数据会在断电或退出后消失

2、擦除 Flash

在对Flash进行烧写之前,需要将其擦除:
Uboot>protect off all 去掉Flash的扇区写保护

Uboot>erase all 擦除Flash的所有扇区
(注:
如果只是要擦除某块区域的Flash,比如0x10000000到0x10060000之间的区域,则可用命令:
1)protect off 10000000
2)erase 10000000 1006ffff
如果是要对某块区域加上写保护,比如0x10000000到0x10060000之间的区域,则可用命令:
1)protect on 10000000 1006ffff
可用flinfo命令来查看那些区域是受保护的,那些区域不是受保护的。

3、烧写boot.bin到Flash
在Uboot提示符下键入命令:

Uboot>loadb 21000000

(下完之后会显示boot.bin的大小,然后在后面用命令cp.b烧写时将其后4位变成f,假如文件大小为5e33a,则在烧写时将其变为5ffff) 将文件发送到系统的SDRAM中然后在超级终端使用Kermit协议,发送文件boot.bin,发送完毕后,键入以下命令:
Uboot>cp.b 21000000 10000000 5ffff    将发送到SDRAM中的数据写入Flash
Uboot>protect on 10000000 10005ffff     对写入Flash的内容进行写保护
注:
此处还可以用tftp或bootp协议来完成,不过要先设置网络变量,即设置本机和目标机的IP地址,还有目标机的Mac地址。

网络环境变量:
Uboot>setenv bootargs root=/dev/ram rw initrd=0x21100000,6000000

ramdisk_size=15360

console=ttyS0,115200,mem=32M 启动系统环境变量
Uboot>setenv ethaddr 12:34:56:78:99:aa mac 地址
Uboot>setenv ipaddr [目标板 ip 地址] 目标板 ip 地址
Uboot>setenv serverip [主机 ip 地址] 主机 ip 地址
tftp协议:
1)tftp 21000000 lb/boot.bin
2)cp.b 21000000 10000000 5ffff
3)protect on 10000000

bootp协议:
1)bootp 21000000 lb/boot.bin
2)cp.b 21000000 10000000 5ffff
3)protect on 10000000 10005fff

4、烧写 Uboot.gz 到 Flash

在Uboot提示符下键入命令:装入Uboot.gz6
Uboot>loadb 20000000 将文件发送到系统的SDRAM中.
然后在超级终端使用Kermit协议,发送文件Uboot.gz,发送完毕后,键入以下命令:

Uboot>cp.b 20000000 10010000 ffff 将发送到SDRAM中的数据写入Flash
Uboot>protect on 10000000 1001ffff 对写入Flash的内容进行写保护


(注:此处也可以用tftp或bootp协议)
二、片外启动

如何在uboot内运行自己的程序
1、手动运行(只是将程序下载到SDRAM中运行,仅做测试之用,断电或退出后就会消失)

1)loadb 20000000 下载用户程序(*.bin) <注:必须是.bin文件,可用arm-linux-

objcopy命令生成>
2)go 20000000 程序就会运行
2、自动运行(将程序写入Flash,uboot启动之后程序自动运行

1)设置环境变量
Uboot>setenv usr_prg cp.b 10300000 20000000 ffff(程序的大小)
Uboot>setenv run_prg go 20000000
Uboot>setenv bootcmd run usr_prg\;run run_prg
Uboot>saveenv
2)写入程序,即将其烧入Flash
protect off all
erase 10300000 103fffff
loadb 20000000 下载*.bin
cp.b 20000000 10300000 ffff(用户程序的大小)
3)reset之后程序就会自动运行"T1X$m
二、烧写linux程序开
1、下载linux到系统的SDRAM运行(仅做测试之用,断电或退出后就会消失)程
1)运行Uboot,设置环境变量
Uboot>setenv bootargs root=/dev/ram rw initrd=0x21100000,6000000

ramdisk_size=15360
console=ttyS0,115200,mem=32M 启动系统环境变量
Uboot>setenv ethaddr 12:34:56:78:99:aa mac 地址
Uboot>setenv ipaddr [目标板 ip 地址] 目标板 ip 地址
Uboot>setenv serverip [主机 ip 地址] 主机 ip 地址
2)下载linux内核,文件系统
打开tftpserver应用程序,设置根目录路径,将内核、文件系统等拷贝到所设置的根目录下。
Uboot>tftp 21100000 ramdisk.gz 下载文件系统
Uboot>tftp 21000000 uImage 下载 linux 内核
Uboot>bootm 21000000 启动 linux
然后linux操作系统就开始运行。
2、烧写 Linux 到系统的 Flash 运行
1)设置运行Linux的环境变量
Uboot> setenv bootargs root=/dev/ram rw initrd=0x21100000,6000000

ramdisk_size=15360 console=ttyS0,115200,mem=32M 启动系统环境变量
Uboot>setenv image cp.b 10020000 21000000 b0000 拷贝内核到sdram
Uboot>setenv ramdisk cp.b 100d0000 21100000 226000 拷贝文件系统到sdram
Uboot>setenv boot bootm 设置变量
Uboot>setenv bootcmd run ramdisk\;run image\;run boot 设置默认变量bootcmd
Uboot>setenv ethaddr 12:34:56:78:99:aa mac 地址
Uboot>setenv ipaddr 目标板 ip 地址 目标板 ip 地址,由你自己决定
Uboot>setenv serverip 主机ip地址 主机ip地址,就是你的PC的ip程序开
Uboot>saveenv 保存环境变量
2)烧写Linux内核到Flash
Uboot>tftp 21100000 ramdisk.gz
Uboot>cp.b 21100000 100d0000 226000
Uboot>tftp 21000000 uImage
Uboot>cp.b 21000000 10020000 b0000
reset之linux操作系统就开始运行

论坛徽章:
0
8 [报告]
发表于 2009-05-13 21:00 |只看该作者

回复 #7 star316 的帖子

好的,我去试试!

论坛徽章:
0
9 [报告]
发表于 2009-05-14 07:25 |只看该作者

回复 #7 star316 的帖子

用Xmodem协议,发送loader.bin和uboot.bin文件,此时uboot.bin被发送到系统的

SDRAM中,这是怎么发送的啊?有点疑惑!

论坛徽章:
0
10 [报告]
发表于 2009-05-14 09:35 |只看该作者
一样的啊, 那个是烧写atmel9200 的有两个 bin 文件, 如果是2410的话就是只有一个 uboot.bin 文件, 通过终端里面的 xmodem 或者 zmodem 协议烧写,
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP