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灯点亮。

时间: 2024-08-10 23:20:07

S3C6410基于SD卡的裸机开发的相关文章

OK6410基于SD卡的裸机开发-LED灯控制

在上一篇文章中提到SD卡的裸机开发环境的搭建以及OK6410的启动设置,这章开始进入LED灯的闪烁控制. 1.首先打开OK6410的开发板原理图,找到LED等控制的原理图部分,如下图1所示. 图1 LED灯控制原理图 由图1可知,控制LED灯的CPU管脚为NLED1~NLED4,NLED1~NLED4对应的CPU管脚名称为GPM0~GPM3(CPU原理图未给出). 2.编写程序LED.s,下面直接给出LED.s的源码. .globl _start _start: /* 硬件相关的设置 */ ld

RT-Thread 学习笔记(九)---开启基于SD卡中的 Elm FatFS 文件系统

软件环境:Win7,Keil MDK 4.72a, IAR EWARM 7.2, GCC 4.2,Python 2.7 ,SCons 2.3.2 硬件环境:Armfly STM32F103ZE-EK v3.0开发板 参考文章:RT-Thread编程指南 由于SD卡可插拔的便捷性,使得其在嵌入式中的应用中广泛使用. [1]修改底层驱动接口 (1)打开Armfly STM32F103ZE-EK v3.0开发板找到SD卡硬件接口部分,如下图: 从硬件接口可以看到,SD是SDIO的接口类型,amobbs

如何使用CubeMx制作一个基于SD卡的文件系统工程(2)

本文是原文http://blog.csdn.net/flydream0/article/details/52777923的补充. 原文并没有考虑SD卡拔插问题,且SDIO没有使用DMA,本文作为补充,将示例如何改善这两方面的问题. 1 SD卡拔插检测 FATFS文件系统初始化得修改下: void MX_FATFS_Init(void) { /*## FatFS: Link the SD driver ###########################*/ retSD = FATFS_Link

(待解决)开发板刷系统(一)---破坏bootloader以及从SD卡启动

开发板上默认在板载iNand中烧入了bootloader和Android系统镜像,如果想要从SD卡来启动,就必须先破坏掉iNand中的bootloader,让其校验失败,从而选择第二启动即从SD通道2启动. 破坏板载iNand中的bootloader的方法,可以参考九鼎的文档,其中提到的在Android平台下破坏iNand的bootloader的方法如下如所示: 执行上述指令后,在执行sync命令确保数据有效.解读下上面那条指令的意思: 输入文件是/dev/zero,输出文件是/dev/bloc

嵌入式Linux裸机开发(一)——点亮Led

嵌入式Linux裸机开发(一)--点亮Led 开发板:友善之臂smart210 一.电路图查阅 1.底板电路图 查阅开发板底板电路图,查阅LED相关部分 LED电路工作原理: LED的正极接3.3V,负极接地时导通,LED发光. 开发板共有四颗LED,正极接3.3V,负极接开发板的LED1_LED4引脚,如果LED要点亮则需要输入低电平. 2.核心板电路图 查阅核心板电路图可知,LED1-LED4接在SoC的GPJ2_0-GPJ2_3,通过控制GPJ2_0-GPJ2_3的寄存器使对应GPIO引脚

SPI模式下MCU对SD卡的控制及操作命令

一.前言 SD 卡有两个可选的通讯协议:SD 模式和 SPI模式 SD 模式是SD 卡标准的读写方式,但是在选用SD 模式时,往往需要选择带有SD 卡控制器接口的 MCU,或者必须加入额外的SD卡控制单元以支持SD 卡的读写.然而,大多数MCU都没有集成SD 卡控制器接口,若选用SD 模式通讯就无形中增加了产品的硬件成本.在SD卡数据读写时间要求不是很严格的情况下, 选用 SPI模式可以说是一种最佳的解决方案.因为在 SPI模式下,通过四条线就可以完成所有的数据交换,并且目前市场上很多MCU都集

第36章 SDIO—SD卡读写测试

第36章     SDIO-SD卡读写测试 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章参考资料:<STM32F4xx参考手册>.<STM32F4xx规格书>.库帮助文档<stm32f4xx_dsp_stdperiph_lib_um.chm>以及SD简易规格文件<Physical Layer Simplified Specificatio

如何烧写BIOS到SD卡里面

针对TINY6410 ADK型号 1.SD卡格式化为FAT32或者FAT格式 2.将SD卡插入USB接口的读卡器,并插在PC的USB口 3.“以管理员身份运行”SD-Flasher.exe(在tiny6410-DVD-B-1/tools下) 4.“浏览”选中"superboot-6410.bin"(在tiny6410-DVD-B-1/images下) 5.“Relayout”重新分割SD卡 6.“scan”扫描SD卡盘符 7.再次点击"Relayout",将弹出提示

二、先在SD卡上启动U-boot,再烧写新的U-boot进Nandflash

1. 制作SD卡 先准备一张2G的SD卡(不能用8G的,2G的卡和8G的卡协议不一样),和烧写SD卡的工具write_sd以及需要烧写到SD卡中的u-boot-movi.bin.将SD卡格式化后连接到Ubuntu虚拟机中,注意在SD卡需要插入到读卡器中,不能用电脑自带的SD卡槽,否则在Ubuntu下认不到.先执行ls /dev/sdb*,能够看见有一个/dev/sdb文件,说明Ubuntu认到SD卡了.如下图: 执行命令:sudo ./write_sd /dev/sdb u-boot-movi.