S3C6410制作SD启动卡以及简易SDbootloader的方法

http://www.ourdev.cn/bbs/bbs_content_all.jsp?bbs_sn=3472292

 

 

三星的S3c2410从nandflash启动将nandflash的前4K的代码片内RAM中去执行,

三星的s3c6410从SD启动时吧SD卡的最末的8K读取到片内的RAM中执行,网上的资料比较少,只有这篇文章中提到了。

 

 

6410的手册上说,可以从nandflash、onenand、SD卡启动,没有专用的烧录工具的情况下,只有SD卡启动是可以考虑的。手册上看到,SD卡启动,实际上是先执行片内IROM中的一段程序,该程序从SD卡中读取代码,写到stepping stone中,stepping stone是位于0x0c000000、size为8K的片内内存,代码写入stepping stone后,跳到0x0c000000处继续执行程序。那么,要实现从SD卡启动,就必须弄清楚: 
1、8K的代码保存在SD卡的什么位置。 
2、代码以什么格式存储。 
    为弄清楚上述问题,依例google一番,没找到有用的资料,上三星的网站,6410的资料没有公开,申请了一下,第二天得到了批准,也没有关于怎样从SD卡启动的资料。找三星代理,似乎不太爱搭理我,也是,我势单力薄一个人,他们怎看得上眼。难道就没有办法了? 
    山穷水尽疑无路,柳暗花明又一村,2450不是也可以从SD卡启动吗?找找2450的资料看有没有,谢天谢地,从网上找到一篇文档: 
896554S3C2450_IROM_ApplicationNote_Rev003.pdf 
我如获至宝,细细读之,虽然写得不太细,比如代码校验算法等都没有讲,总是可以试一下了。 
    依葫芦画瓢,把编译好的代码写入到最后芯片末尾偏移-9216字节处,插入SD卡座,把开关拨到SD0卡启动的位置,上电,哈哈,成功了,几个蓝色的LED欢快地闪烁起来。试了两个SD卡,16M的可以,2G的不行,不知何故,暂且放一边吧。 
    首战告捷,该歇歇了,待续。

 

 

楼主说2G的SD卡不行,应该是放的位置不对。我用的就是2G的SD卡,用友坚提供的bootloader工具烧写,对比发现,bootloader是从0x7537DC00这个地址开始写的,是一条跳转语句……我自己用RVDS写了个闪烁LED的汇编小程序,编译后,从这个位置开始写入,发现是可以用的,至于原因,还不清楚,估计与SD卡的结构有关

我用的是UT-S3C6410开发板,与idea相比,核心板是一样的,地底板不同

 

你可能感兴趣的:(c,汇编,Google,工具,三星,idea)