tiny6410 裸机程序烧机简单介绍
2012-09-04 15:42
411 查看
要把一个裸机程序烧写到板子上,是调试裸机程序的第一步。
xp环境下:
此时可以按照Tiny6410的刷机指南进行操作:
(1)使用SD-Flasher.exe烧写superboot到sd卡中(这两个文件都在Tiny6410的光盘中)。
(2)假如SD卡没有目录和文件,可以跳过此步骤。如果有images目录,那么就要把其中的FriendlyARM.ini删掉或者修改其中CheckOneButton=No,把No改为Yes。
(3)这时插入SD卡启动,会显现菜单功能,如果要烧写并运行裸机程序,就选择d。
(4)在PC上启动DNW软件,在DNW软件上点击“USB Port”下的“Transmit/Restore”菜单,将会弹出文件打开对话框,选择你的裸机程序bin文件。就会进行烧写并运行。
注意:此方法程序会从0x50000000地址开始运行,所以在编译裸机程序时,要指定地址为0x'50000000,而不是0x00000000。
linux环境下:
linux环境下烧机更为强大,什么工具都不需要使用。
原理如下:从SD卡启动时,会把SD卡总容量-18的扇区开始的8K空间加载到0x0C000000处运行,所以把我们的裸机程序bin文件写到总容量-18扇区即可。
烧写方法:
(1)查看我们SD在系统中的节点以及大小信息:sudo fdisk -l
root@archermind-desktop:/# sudo fdisk -l
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc74ff3f5
Device Boot Start End Blocks Id System
/dev/sda1 * 1 12749 102406311 7 HPFS/NTFS
/dev/sda2 12750 25498 102406342+ 7 HPFS/NTFS
/dev/sda3 25499 60802 283573249 5 Extended
/dev/sda5 25499 37656 97655808 83 Linux
/dev/sda6 37656 38143 3905536 82 Linux swap / Solaris
/dev/sda7 38143 60802 182009856 83 Linux
Disk /dev/sdb: 3980 MB, 3980394496 bytes(SD卡,大小为3980394496)
9 heads, 8 sectors/track, 107975 cylinders
Units = cylinders of 72 * 512 = 36864 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 114 107976 3883008 b W95 FAT32
/dev/sdb3 346 346 0 0 Empty
Partition 3 does not end on cylinder boundary.
(2)烧写裸机程序bin文件到/dev/sdb:
使用dd命令,dd if="bin文件" of =dev/sdb seek=3980385280(3980394496-18*512)bs=1
注意of中是sdb,不带数字,带数字的是分区。
总结:
其实裸机开发中,linux 的dd命令足够强大,给我们带来了很多方便,而且使我们的程序不受superboot的影响。但是xp下ads开发起来很方便,所以我很少用linux环境来开发裸机程序,主要是arm-linux-gcc环境对裸机开发支持不好(可能是我不懂,反正我写中断的时候在此环境下是怎么也没有成功的)。
其实xp环境中也有类型与dd的功能,只是暂时我还不知道,如果哪位牛人知道,还请留言告诉我一下。
本人所有博文目录:http://blog.csdn.net/lrs030740304/article/details/7941984
xp环境下:
此时可以按照Tiny6410的刷机指南进行操作:
(1)使用SD-Flasher.exe烧写superboot到sd卡中(这两个文件都在Tiny6410的光盘中)。
(2)假如SD卡没有目录和文件,可以跳过此步骤。如果有images目录,那么就要把其中的FriendlyARM.ini删掉或者修改其中CheckOneButton=No,把No改为Yes。
(3)这时插入SD卡启动,会显现菜单功能,如果要烧写并运行裸机程序,就选择d。
(4)在PC上启动DNW软件,在DNW软件上点击“USB Port”下的“Transmit/Restore”菜单,将会弹出文件打开对话框,选择你的裸机程序bin文件。就会进行烧写并运行。
注意:此方法程序会从0x50000000地址开始运行,所以在编译裸机程序时,要指定地址为0x'50000000,而不是0x00000000。
linux环境下:
linux环境下烧机更为强大,什么工具都不需要使用。
原理如下:从SD卡启动时,会把SD卡总容量-18的扇区开始的8K空间加载到0x0C000000处运行,所以把我们的裸机程序bin文件写到总容量-18扇区即可。
烧写方法:
(1)查看我们SD在系统中的节点以及大小信息:sudo fdisk -l
root@archermind-desktop:/# sudo fdisk -l
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc74ff3f5
Device Boot Start End Blocks Id System
/dev/sda1 * 1 12749 102406311 7 HPFS/NTFS
/dev/sda2 12750 25498 102406342+ 7 HPFS/NTFS
/dev/sda3 25499 60802 283573249 5 Extended
/dev/sda5 25499 37656 97655808 83 Linux
/dev/sda6 37656 38143 3905536 82 Linux swap / Solaris
/dev/sda7 38143 60802 182009856 83 Linux
Disk /dev/sdb: 3980 MB, 3980394496 bytes(SD卡,大小为3980394496)
9 heads, 8 sectors/track, 107975 cylinders
Units = cylinders of 72 * 512 = 36864 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 114 107976 3883008 b W95 FAT32
/dev/sdb3 346 346 0 0 Empty
Partition 3 does not end on cylinder boundary.
(2)烧写裸机程序bin文件到/dev/sdb:
使用dd命令,dd if="bin文件" of =dev/sdb seek=3980385280(3980394496-18*512)bs=1
注意of中是sdb,不带数字,带数字的是分区。
总结:
其实裸机开发中,linux 的dd命令足够强大,给我们带来了很多方便,而且使我们的程序不受superboot的影响。但是xp下ads开发起来很方便,所以我很少用linux环境来开发裸机程序,主要是arm-linux-gcc环境对裸机开发支持不好(可能是我不懂,反正我写中断的时候在此环境下是怎么也没有成功的)。
其实xp环境中也有类型与dd的功能,只是暂时我还不知道,如果哪位牛人知道,还请留言告诉我一下。
本人所有博文目录:http://blog.csdn.net/lrs030740304/article/details/7941984
相关文章推荐
- 八、mini2440裸机程序之UART(1)简单介绍
- 八、mini2440裸机程序之UART(1)简单介绍【转】
- 六、mini2440裸机程序之中断控制器(1)简单介绍
- WPF介绍和简单的2D跳棋程序
- 关于用ADO STREAM做的无组件上传程序简单介绍
- 免费ARP简单介绍和程序编写
- Hibernate基本介绍个简单的程序(1)
- tiny6410的纯裸机程序bin文件大于8K,你是怎么下载到Flash运行的。问题已解决
- ASP.NET中在一般处理程序中使用session的简单介绍
- eclipse调试程序界面简单介绍使用
- MyBatis 介绍、简单入门程序
- 简单介绍GDB 调试程序
- FileOutputStream 类 和 FileInputStream类的简单介绍,附代码演示。以及一个复制媒体文件的小程序。
- SequenceInputStream类的简单介绍。以及用该类合并集合文件数据的程序代码。
- S3C2440下几个简单的裸机接口程序
- ASP.NET中在一般处理程序中使用session的简单介绍
- C#串口介绍以及简单串口通信程序设计实现
- Struts2介绍及运行一个简单的Struts2程序
- LED驱动程序相关头文件简单介绍