启动文件和2440启动方式相关知识
来源:互联网 发布:救世主大教堂知乎 编辑:程序博客网 时间:2024/05/21 08:43
首先要对源代码进行编辑和编译,需要一个叫做启动文件的东西,它是由操作系统提供(自动生成)的,通常不为人知,今天我来为大家介绍一下启动文件和JZ2440的启动方式。
(1)启动文件包括硬件初始化和软件初始化两部分
软件初始化:
<1>设置栈
<2>设置main函数的返回地址
<3>调用main
<4>清理工作
注意:在<1>设置栈中,栈指针PC如果指向片内SRAM不需要进行初始化,指向片外SDRAM需要对SDRAM进行初始化
硬件初始化:
<1>关闭看门狗(定时器)
<2>初始化时钟
<3>初始化SDRAM
注意:如果不关看门狗,系统(CPU)会不断进行重启
举例:
启动文件:
LDR R0,=0x53000000 //0x53000000是看门狗寄存器地址
MOV R1,#0x0
STR R1,[R0] //禁止看门狗
LDR SP,=1024*4 //设置堆栈(2440内部SRAM只有4K,此处不能大于4K)
BL main //调用main函数
halt_loop:
b halt_loop;
bl指令 :跳转到main并把返回地址保存lr寄存器里
2440的启动方式:
2440的启动方式有两种:
<1>Nand启动
【1】前4K自动复制到片内SRAM中
【2】CUP从SRAM的0地址执行
代码 -> Nand flash -> 片内SRAM -> 执行
<2>NOR启动
【1】0地址指向NOR flash
【2】CPU直接从0地址执行
- 启动文件和2440启动方式相关知识
- Android启动应用相关知识
- Redis 安装启动相关知识
- Oracle数据库的启动和关闭方式知识分享
- 文件自启动方式
- AIX启动的相关命令知识
- centos6.3启动的相关知识
- MBR、GRUB、Linux启动相关知识
- Oracle 启动以及相关文件
- 相关联文件 默认启动
- stm32启动文件相关说明
- Bash的启动方式和启动脚本
- 线程等待和启动相关
- CentOS 启动MySQL的相关方式
- 【总结】2440启动方式
- Ubuntu下关闭apache和mysql的开机启动相关知识
- oracle启动和关闭方式
- oracle启动和关闭方式
- Java学习笔记(20)-- main方法
- RabbitMq在spring boot中集成和应用
- SecureCRT中python脚本编写学习指南
- AngularJS监听页面关闭,定时器$interval()的使用
- pthread_join/pthread_exit用法实例
- 启动文件和2440启动方式相关知识
- shell死循环(while&&for)
- 动态规划背包算法(01背包和完全背包)
- popwindow+viewpager+fragment并且可以滑动的问题
- [Android]不同包引用R文件
- 砝码组合
- Python:入门到实现网络爬虫 Day1
- redis操作Template测试
- ICPC 青岛赛区 网络赛 1011 :A Cubic number and A Cubic Number<数学>