找回密码
 注册
关于网站域名变更的通知
查看: 273|回复: 1
打印 上一主题 下一主题

怎样实现对S3C6410 进行裸机程序烧写

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-9-2 14:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 uperrua 于 2019-9-2 14:34 编辑
1 h; s" e* N5 c0 a9 z. R1 Y- k" I' o+ X& N3 Q
学习ARM时,看到三星ARM11 的官方手册上写道:S3C6410具备一个内部SRAM的缓冲器,叫做“STEPPINGSTONE”,支持NAND FLASH的系统引导。当系统启动时,NAND FLASH存储器的前4KB将自动被载入到“SETPPINGSTONE”中,然后系统自动执行这些载入的引导代码。(默认的话该存储区应该被映射到地址空间0处)。' [. L* z" K' {; t( }& |

6 G0 T1 t2 U7 N9 \于是一直就想写个裸机程序,长度不超过4KB,存放在NAND FLASH的最开始,这样每次系统上电从NAND FLASH启动时,都会把这段代码拷贝到被映射到地址0x0 处的“STEPPINGSTONE”处。这个应该是bootloader 的雏形吧,一上电就执行的程序。可是在裸机环境下一直找不到烧写NAND FLASH的方法。买了个JLink,貌似在Windows 下据说不能烧写NAND FLASH,尚未验证。网上大部分方法都是针对Uboot 烧写内存,通过USB或者串口,网络。没有看到写道NAND FLASH的方法。没办法,只能凑活着写道内存中,先看看自己的程序是不是写对了。突然有一天,翻翻韦东山老师的书:《嵌入式Linux应用开发完全手册》上一张,降到Uboot中怎么从内存烧写东西到NAND FLASH中去。突然灵机一动,可以将程序先烧到内存中,在从内存中烧到NAND FLASH中去。最后,NAND FLASH中的Bootloader (Uboot)会被覆盖掉,上电就会自动运行自己的裸机程序,而非Bootloader。
5 W7 e( P! ^7 ~7 O' G9 M" I) _, X- k  X, Q: |* D# ^) c
想法有了,就去实现下:为此写了个小程序,来验证下。改程序的思路是:四个按键对应四个LED,按键按下,LED亮;松开LED灭。
; ]; e! ~% |5 W0 z6 Z# l6 H' g/ B& E7 E- D2 s6 Y
三个程序如下:# H% n  v0 o7 ~% Y8 ?6 ~
5 I9 k& ]1 g) r3 k0 ~8 b
游客,如果您要查看本帖隐藏内容请回复

2 D  ]( |9 [! d. ^  D, ?- w+ k; `7 A0 {/ O" z

/ \" j$ [3 X$ w' a7 r
; A1 ^  |- v- n+ r

该用户从未签到

2#
发表于 2019-9-2 22:02 | 只看该作者
试着操作一下,不错
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-23 12:30 , Processed in 0.125000 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表