主题 : 如需要用C语言对2440操作 起码需要按uboot或vivi 阶段1的步骤 完成汇编编写? 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 76244
精华: 0
发帖: 8
金钱: 40 两
威望: 8 点
综合积分: 16 分
注册时间: 2012-08-21
最后登录: 2012-08-31
楼主  发表于: 2012-08-23 09:28

 如需要用C语言对2440操作 起码需要按uboot或vivi 阶段1的步骤 完成汇编编写?

我想用最少需要用汇编配哪几个初始化?
1. 禁止中断 2. 时钟信号 3. 挂上nand flash 4. 设置堆栈
如不超4K(编译后) 则用JLINK下到nand flash 即可?
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2012-08-23 15:37
理论上来说,C语言只要求设置好堆栈,前面几个是2440本身的初始化。不超过4K的程序镜像可以通过JLINK下载到内部SRAM里直接运行。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 76282
精华: 0
发帖: 4
金钱: 20 两
威望: 4 点
综合积分: 8 分
注册时间: 2012-08-21
最后登录: 2013-02-06
2楼  发表于: 2012-08-24 07:48

 回 1楼(kasim) 的帖子

谢谢啊 jlink 如何下至sram? jlink不是只能先把image下到sdram然后再copy至nandflash么
还请赐教啊
数据引用求学中
级别: 新手上路
UID: 25926
精华: 0
发帖: 20
金钱: 105 两
威望: 21 点
综合积分: 40 分
注册时间: 2010-07-31
最后登录: 2015-07-26
3楼  发表于: 2012-08-24 08:08
只需要设置堆栈指针,使其指向前4k的地址,就可以跳转c语言了,这是最少的步骤,至于初始化时钟,禁止中断什么的,都可以在c语言中编写
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
4楼  发表于: 2012-08-24 09:34

 Re:回 1楼(kasim) 的帖子

引用第2楼skysn于2012-08-24 07:48发表的 回 1楼(kasim) 的帖子 :
谢谢啊 jlink 如何下至sram? jlink不是只能先把image下到sdram然后再copy至nandflash么
还请赐教啊

在NOR启动模式下,SRAM映射的起始地址是0x40000000, 用JLINK把程序镜像加载到这个地址运行就可以了。关于SRAM的地址映射,参考S3C2440A用户手册的NAND Flash Memory Mapping一节里的图。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 76244
精华: 0
发帖: 8
金钱: 40 两
威望: 8 点
综合积分: 16 分
注册时间: 2012-08-21
最后登录: 2012-08-31
5楼  发表于: 2012-08-24 09:52

 回 4楼(kasim) 的帖子

谢谢高手指导,我已经在手册中找到SRAM的映射是0x40000000,
还有据楼上兄台表述“只需要设置堆栈指针,使其指向前4k的地址,就可以跳转c语言了,这是最少的步骤,至于初始化时钟,禁止中断什么的,都可以在c语言中编写“ 那为何现在的u-boot和VIVI为何用汇编做这些工作 知道copy u-boot至sdram后在调用C呢?