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

在调用c函数前必须先设置好堆栈,如果代码不大,一般设置栈为 ldr sp, =8*1024 ,即内部sram的最大地址处,如果完成了外接sdram的初始化,可以设置成 ldr sp, =0x60000000.

将你的#define宏定义和编译出错信息上传出来,我使用#define就没问题。

首先搞些裸机程序,前提是一直要看硬件手册,这很关键,即便再好的辅导视频,对板子的讲解也不会跳出datasheet。汇编也要有些了解,不一定要多么熟悉,但是基本的还是要有的,start.s文件在裸奔时还是必须的。

其次,在搞熟裸机程序之后,先自己动手移植一下U-Boot和Linux内核,制作一下根文件系统,网上文档有很多,可以产生一些感性上的认识。U-Boot上边很多代码写得还是很经典的,在水平达到一定程度后可以考虑学习一下。

最后就是驱动学习和内核的学习了。

总之,视频是辅助,学习靠自己,万事开头难,但是不靠自己硬挺过去是不行的。祝你好运。


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

原文地址:https://54852.com/yw/11126112.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存