Tiny6410_SMDK从SD卡直接启动裸板代码

今天折腾了一天终于可以可以直接从SD卡启动6410的裸板程序了,这也让我实现了完全在linux下开发裸板代码。详细过程如下:

1.通过查SMDK6410_IROM_APPLICATION NOTE_REV 1.00,可以查到如下

其中BL1是开发板自动运行的固件代码

从上可以知道应将代码烧到最后地址-(1025+1+16)*512字节处

2.测试代码如下:

1     .text

2     .code 32

3     .globl _start

4     _start:

5     ldr r0,=0x70000000

6     orr r0,r0,#0x13

7     mcr p15,0,r0,c15,c2,4 @设置外设地址和大小

8 /*关闭看门狗*/

9     ldr r1,=0x7e004000

10     mov r0,#0

11     str r0,[r1]

12

13     ldr r2,=0x7f008800

14     ldr r0,=0x11110000

15     str r0,[r2]

16     ldr r0,=0xff0f

17     ldr r2,=0x7f008808

18     str r0,[r2]

19     halt:

20     b halt

Makefile代码如下:

1 led.bin:led.S

2     arm-linux-gcc -c -o led.o led.S

3     arm-linux-ld -Ttext 0xc000000 -o led.elf led.o

4     arm-linux-objcopy -O binary led.elf led.bin

5

6 clean:

7     rm led.o led.elf

其中-Ttext 0xc000000是指加载到地址为0xc0000000处执行(查S3C6410_中文手册内存映射部分可以知道:)

3.查看我的SD卡信息如下:

[email protected]:~/ARM_C/led$ sudo fdisk /dev/sdc

[sudo] password for shi:

命令(输入 m 获取帮助): p

Disk /dev/sdc: 7742 MB, 7742685184 bytes

226 heads, 5 sectors/track, 13382 cylinders, total 15122432 sectors

Units = 扇区 of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000

设备 启动      起点          终点     块数   Id  系统

/dev/sdc1            2048    14858239     7428096    b  W95 FAT32

命令(输入 m 获取帮助): q

4.烧写:

[email protected]:~/ARM_C/led$ sudo dd if=led.bin of=/dev/sdc seek=7742151680 bs=1

记录了72+0 的读入

记录了72+0 的写出

72字节(72 B)已复制,0.92066 秒,0.1 kB/秒

其中seek=7742151680的数据是7742685184-(1042*512)

5.将开发板打到SD卡启动

~

Tiny6410_SMDK从SD卡直接启动裸板代码

时间: 2024-10-30 08:17:31

Tiny6410_SMDK从SD卡直接启动裸板代码的相关文章

二、先在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.

6410开发板sd卡启动时烧写u-boot.bin以及u-boot-spl-16k.bin步骤

参考文档:<SMDK6410_IROM_APPLICATION NOTE_REV 1.00>(可以从这里下载到> 参考博客:Tekkaman的博文<u-boot-2010.09 for mini6410 (add MMC support)> <Tiny6410_SMDK从SD卡直接启动裸板代码> <使uboot支持S3C6410的SD启动> <S3C6410开发全纪录(一)<还原SD卡启动的真相>> sd卡启动布局方式(假定一个

S5PV210裸板驱动:启动

以往2440和6410的启动方式,只要我们把裸板代码烧写到NAND FLASH的开始位置,当开发板上点启动时,处理器会自动从NAND FLASH上拷贝前面一段的代码到内部的RAM中执行.按照以前的方法,我写了一段汇编代码,如下: 1_ARM/1_start/start.S 1 #define WTCON 0xE2700000 2 3 .text 4 .align 2 5 .global _start 6 7 _start: 8 //close the watchdog 9 ldr r1, =WT

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

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

制作SD卡启动自己编译的uboot.bin

README for FriendlyARM Tiny4412 -----------------------------------------------------1. Build uboot a) 安装好toolchain (arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz)并设置好 环境变量PATH,保证可以正常使用. b) 解压 uboot_tiny4412-20130729.tgz 并进入相应的目录 tar xzf uboot_tiny4412-201

Tiny6410裸机编程&mdash;&mdash;(一)SD卡启动

友善提供的SuperBoot功能强大,在其启动过程中已经对S3C6410做了很多初始化的工作,在裸机编程时使用它不利于了解ARM的启动过程.所以计划直接将裸机程序烧到SD卡中启动. 使用友善提供的SD-Flasher.exe程序,经过多次实验,都无法将裸机程序烧写到SD卡上,2G,4G,小卡,大卡都试了一遍,没有成功.后来想到使用winhex直接烧写到SD卡,才成功完成实验. 我是将裸机程序使用winhex烧写到4G的大卡上,下面以led.s为例,记录一下全过程. 首先在虚拟机中编译led.s,

Exynos4412从SD卡启动的简单网络文件系统制作

Exynos4412从SD卡启动的简单网络文件系统制作 1. 简介 嵌入式系统能够在开发板上正常运行,需要先进行系统配置,一个完整的嵌入式系统应该包含的几个部分::uboot,kernel,rootfs,appfs.这几部分在ARM板Flash上的位置关系如下图所示: 注:图片来源于韦东山老师的<嵌入式Linux应用开发完全手册> rootfs可以不用添加到开发板,而是部署到PC机上,开发板在运行完kernel,要挂载rootfs时,可以通过NFS网络挂载到设定好的PC机上的文件系统上. 操作

【嵌入式开发】 嵌入式开发工具简介 (裸板调试示例 | 交叉工具链 | Makefile | 链接器脚本 | eclipse JLink 调试环境)

作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42239705  参考博客 : [嵌入式开发]嵌入式 开发环境 (远程登录 | 文件共享 | NFS TFTP 服务器 | 串口连接 | Win8.1 + RedHat Enterprise 6.3 + Vmware11) 开发环境 : -- 操作系统 : Vmware11 + RedHat6.3 企业版 + Win8.1; -- 硬件 : OK-6410-A 开发

如何烧写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",将弹出提示