这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » s3c2410x vivi启动问题 nand_read_ll函数的迷惑

共5条 1/1 1 跳转至

s3c2410x vivi启动问题 nand_read_ll函数的迷惑

菜鸟
2006-12-31 05:08:26     打赏

路过,请问斑竹几个问题,谢谢!

下面是HEAD.S里面的一段代码
@ copy vivi to RAM
ldr r0, =VIVI_RAM_BASE //(DRAM_BASE + DRAM_SIZE - VIVI_RAM_SIZE)

mov r1, #0x0
mov r2, #0x20000
bl nand_read_ll
tst r0, #0x0
beq ok_nand_read

当steppingstone把head.s文件的代码拷贝后就在steppingstone里面运行,运行到
上面的代码时就是调用stage2的c文件的一个函数来拷贝整个vivi到ram,
// nand_read_ll(unsigned char *buf, unsigned long start_addr, int size)
// ro = buf , r1 =start , size = r2=128k
这里就有个矛盾了,因为以main函数为入口点的stage2 的c文件是以0x33f00000基址编译的,因此无论 nand_read_ll(unsigned char *buf, unsigned long start_addr, int size)是否已经在steepingstone里面都是无法正确运行的,那么怎么能调用 nand_read_ll(unsigned char *buf, unsigned long start_addr, int size)这个函数来拷贝vivi到ram呢???

还有以下问题:
@ Start of executable code

ENTRY(_start) //入口点
ENTRY(ResetEntryPoint)

arm的文件不是一个文件只能最多有一个入口点?????

请指教。

[align=right][color=#000066][此贴子已经被作者于2006-12-31 13:43:01编辑过][/color][/align]




关键词: s3c2410x     启动     问题     函数     迷惑    

菜鸟
2007-01-01 07:32:00     打赏
2楼

我对VIVI不熟悉,没有分析过。我的猜测(不一定正确):

VIVI编译的时候,是不是分为2个部分,生成2个独立的程序。第一个程序把第二个程序拷贝到RAM里面后,把PC设置为第二部分的程序入口点,然后把控制交给第二部分。

你看看VIVI的链接文件,或许会有帮助。


菜鸟
2007-01-01 23:52:00     打赏
3楼
twentyone深夜还在啊?难道在地球的那一端?嘿嘿

菜鸟
2007-01-03 02:54:00     打赏
4楼

前段时间出差去了,不过现在已经回来了。 11点不是很晚吧 :-)


菜鸟
2007-01-03 22:59:00     打赏
5楼

嗯,不晚。我说前段时间不怎么见你现身呢,原来出差中~~


共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]