tiny6410怎么直接烧写裸机程序

tiny6410怎么直接烧写裸机程序,第1张

我的开发板 是这样的

1.烧写裸机程序

一个nand flash 一个 norflash

先用jlink下载Uboot到norflash

然后启动 用uboot更新uboot到 nandflash的方式 下载裸机程序哗颤橡

然后从nandflash启动

2.ADS用法 可以去网上查查 好多

3.(不使用ADS)建洞册立裸机程序:必须自己实现几个东西

3.1初始化硬件(汇编):比如关闭看门狗啊 初始化栈指针(如果你要跑C的话) 之类

3.2MAKEFILE 中要制定连接地址 去_elf头

3.3实现你的C程序

比乱旁如简单的控制LED的裸机程序

crt0.S:

.text

.global _start

_start:

ldr r0, =0x53000000 @ WATCHDOG寄存器地址

mov r1, #0x0

str r1, [r0] @ 写入0,禁止WATCHDOG,否则CPU会不断重启

ldr sp, =1024*4 @ 设置堆栈,注意:不能大于4k, 因为现在可用的内存只有4K

@ nand flash中的代码在复位后会移到内部ram中,此ram只有4K

bl main@ 调用C程序中的main函数

halt_loop:

b halt_loop

有点麻烦,连好jlink和dnw先写个初始化时钟和DRAM的小程序,用jlink commander(输入loadbin 你的文件的路径睁游 0xc000000)加载到0xc000000处,然后输入setpc 0xc000000,再悉耐销输入go,这是内存和时钟就初始化好了。然后输入h,使cpu停止,再输入loadbin 你的u-boot的路径 u-boot的运行地址,然后setpc uboot的地址,go,然后从dnw输入写uboot的代码。大概过程是这样,其实很复杂,初学者几乎无法完成,特别是初始化的代码。还是买个sd卡老老实实的学亩神吧。

在开发板上空旁兄渗白的运脊情况下,要烧写Uboot。

可以用Jlink v8(有没有更高版本我不清楚,当年烧写尘纤OK6410用的就是V8)。

用Jlink Commander 将Uboot 放到链接时指定的内存地址,运行。而后将uboot.bin再通过网线 或者 usb 或者 Jlink 下载到内存。而后烧写uboot到NandFlash。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12465071.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存