S3C6410基于SD卡的裸机开发

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了S3C6410基于SD卡的裸机开发相关的知识,希望对你有一定的参考价值。

 手里只有一块OK6410开发板,一张8G的SD卡,没有相关的JTAG调试器,也没有集成开发环境可用,那如何进行裸机开发呢?查询开发的手册可知,6410芯片支持从SD卡启动,因此裸机开发就从SD卡开始。

1、开发环境的搭建

  首先搭建虚拟机平台,安装Linux开发环境centos6.5,安装过程这里不再赘述。

2、交叉编译环境的安装

  进入centos6.5,在/home目录下新建gnutools目录,将arm-linux-gcc-4.3.2.tgz(开发板的所带的资料)文件拷贝到 centos/home/gnutools目录下。在 Centos6.5中新建一个终端,输入下面的命令安装交叉编译器:
#cd /home/gnutools (进入/gnutools目录)
#tar zxvf arm-linux-gcc-4.3.2.tgz 
编译器软件解压到当前文件夹,把交叉编译器路径添加到系统环境变量中,以后可以直接在终端窗口中输入 arm-linx-gcc令来编译程序。
在终端中执行:vi .bashrc
添加/home/guntools/usr/local/arm/4.3.2/bin到$PATH变量
保存,退出。
重新启动系统,在终端里面执行 arm-linux-gcc回车,如下图所示:

技术分享

3、OK6410的SD卡启动

  OK6410上电后会把SD卡固定位置的固定大小的内容复制到内部SRAM中执行,复制完成之后,从内部SRAM开始执行代码,关于SD卡的详细启动读者可以参考资料<<S3C6410_Internal_ROM_Booting.pdf>>

  OK6410启动流程入下图所示:

技术分享

4、SD卡写入位置

  编写好的代码如何写入到SD卡中以及写到SD卡的什么位置?从上图中可以得知,就是将代码写入到BL1的存储位置即可,则硬件上电将会把BL1拷贝到

内部RAM(stepping stone)执行。查看参考资料<<S3C6410_Internal_ROM_Booting.pdf>>,如下图所示:

技术分享

从上图可以看出:SDHC卡的 BL1是在:Total_sector-Reserved-sigature-BL1=倒数第1042个扇区中

5、代码写入BL1位置

  插入SD卡,进入Linux环境输入fdisk -l /dev/sdb,如下图所示:

技术分享

 计算BL1的位置:BL1=Total_sector-Reserved-sigature-BL1=7744782336/512-1042=15125486

 然后将代码写到SD卡,这里以led灯点亮程序为例,如下图所示:

 技术分享

6、设置OK6410启动方式

 制作好的 SD卡插入开发板 SD的插槽。接通电源

  拨码开关设置为 SD卡启动。如下图所示:

 技术分享

结语:代码在SRAM中执行,并且led灯点亮。






本文出自 “gavin” 博客,请务必保留此出处http://gavin2.blog.51cto.com/1703264/1758615

以上是关于S3C6410基于SD卡的裸机开发的主要内容,如果未能解决你的问题,请参考以下文章

嵌入式Linux裸机开发——iNand简介

裸机实验预备---分别使用dnw和SD卡来下载程序

基于KEIL4开发ARM9(S3C2440)的裸机程序

ok6410[002] ubuntu1604系统下搭配ckermit和dnw基于RAM的裸机程序调试环境

Mini2440裸机开发之串口UART

1.裸机开发环境的体验(Redhat 6.4 + vbox)