打印

44binit.s这段奇怪的代码,如何解释

[复制链接]
3389|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mrkingxu|  楼主 | 2009-12-31 11:17 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
44binit.s这段奇怪的代码,如何解释 大家看看如下,如何解释,而且有这段代码的话,程序会死循环,进不去Main()函数.   

    ;****************************************************
    ;修正内存大小                     *
    ;****************************************************
    mov r0, #0
    ldr r1, =0x0c000000
    ldr r2, =0x0c000200
    str r0, [r1]    ;0 to 0xc000000
    mov r0, #-1
    str r0, [r2]    ; -1 to 0xc000200
    ldr r0, [r1]    ;[r1]=0 to r0
    cmp r0, #0

ldrne r0, =0x01c8001c
ldrne r1, =((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN8))
strne r1, [r0]
strne r1, [r0, #4]

请有这个经历的同行,解释一下.

相关帖子

沙发
mrkingxu|  楼主 | 2010-1-2 17:31 | 显示全部楼层
不像是搬运内容,他的注释是"修正内存大小"
它这里完成的是把数据0写入0xc000000
把数据-1写入0xc000200,
然后看0xc000000是否为写入的数据0,如果不是,则要设置GCS6.
但我不知道这段代码有何意义?

使用特权

评论回复
板凳
mrkingxu|  楼主 | 2010-1-3 11:05 | 显示全部楼层
我在调试这段代码时,如果加了这条代码,程序将不能正确运行。也就是它这段代码会把0xc000000和0xc000200的数据破坏掉了。我也不知道,这块开发板的程序加这段干嘛,是不是在逗我们玩呢。可惜我买的这块S3C440B开发板的厂家倒闭了,不然可以问问他们自己。

使用特权

评论回复
地板
mrkingxu|  楼主 | 2010-1-6 14:32 | 显示全部楼层
44binit.s这段奇怪的代码,如何解释 大家看看如下,如何解释,而且有这段代码的话,程序会死循环,进不去Main()函数.   

    ;****************************************************
    ;修正内存大小                 ...
mrkingxu 发表于 2009-12-31 11:17
经过仔细思考,发生这段代码是用来测试SDRAM存储器初始化好了,也就是在准备搬运数据到SDRAM前测试SDRAM,如果不能写,那就再重新初始化一下SDRAM存储器时序.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

13

帖子

0

粉丝