6030|13

80

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

EBOOT中startup.s代码问题 [复制链接]

在读startup.s的代码时碰到几句像下边的语句

   
   add   r0, pc, #MEMCTRLTAB - (. + 8)

   add     r11, pc, #g_oalAddressTable - (. + 8)
   


这里边的(. + 8)是什么意思?

另外:
ResetHandler

        ; Make sure that TLB & cache are consistent
        mov     r0, #0
        mcr     p15, 0, r0, c8, c7, 0           ; flush both TLB
        mcr     p15, 0, r0, c7, c5, 0           ; invalidate instruction cache
        mcr     p15, 0, r0, c7, c6, 0           ; invalidate data cache
        
      
        ldr     r0, = GPFCON                    ;这一句的作用是什么,初始化这个I/O口是用作什么的?LED?
        ldr     r1, = 0x55aa      
        str     r1, [r0]


        ldr     r0, = WTCON                     ; disable watch dog
        ldr     r1, = 0x0         
        str     r1, [r0]


在eboot中操作led是要在startup.s中初始化吗?

初学,迷糊,不要见笑!谢谢了!

最新回复

基本上明白了。 这两个网址说的比较清楚: [/url] [url=http://topic.eeworld.net/u/20070122/16/fc8ec835-e373-41d2-885e-6360348d58b2.html] 多谢各位回帖!结了!  详情 回复 发表于 2008-12-4 17:04
点赞 关注

回复
举报

68

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
+8好像是偏移量

其他两个问题我也等高手回答,帮顶
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
(. + 8)难道是当前地址加8的意思?这一句的作用是什么呢?
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

4
 
之前Google过,是说由于采用流水线的原因,PC值是当前执行的地址加上8,所以这里要减去8。
 
 
 

回复

53

帖子

0

TA的资源

一粒金砂(初级)

5
 
add  r0, pc, #MEMCTRLTAB - (. + 8)

  add    r11, pc, #g_oalAddressTable - (. + 8)
  
——这是ARM流水线,ARM9是五级吧,

ldr    r0, = GPFCON                    ;这一句的作用是什么,初始化这个I/O口是用作什么的?LED?
        ldr    r1, = 0x55aa      
        str    r1, [r0]
这个是初始化IO,我想是GPF口接了LED
——这个让你看了知道CPU在运行呗,没有什么特殊作用


 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 3 楼 gsymichael 的回复:
之前Google过,是说由于采用流水线的原因,PC值是当前执行的地址加上8,所以这里要减去8。


学习了,原来如此!!!

GPF是LED的控制
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

7
 
看来很多都是纯软件出来的啊。哈哈。
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

8
 
我的板上的led是接在GPB上的,如果要点亮led的话,就要把这里的GPF全改成GPB,是吧?

add  r0, pc, #MEMCTRLTAB - (. + 8) 这一句能起到什么作用?
. = pc-4 ?那这一句是不是相当于 mov r0,#MEMCTRLTAB+4 ?
这个大体好像明白了点!

代码上下文如下:
;   Initialize memory controller

        add     r0, pc, #MEMCTRLTAB - (. + 8)
        ldr     r1, = BWSCON                    ; BWSCON Address
        add     r2, r0, #52                     ; End address of MEMCTRLTAB
40      ldr     r3, [r0], #4   
        str     r3, [r1], #4   
        cmp     r2, r0      
        bne     %B40
   
        ldr     r0, = GPFDAT
        mov     r1, #0x60
        str     r1, [r0]

这一段的作用应该是将MEMCTRLTAB中的内容拷贝到BWSCON中,
BWSCON 定义如下:

BWSCON          EQU         (S3C2440A_BASE_REG_PA_MEMCTRL     + 0x00)
;#define S3C2440A_BASE_REG_PA_MEMCTRL            (0x48000000)

然后再点亮led,作为指示。
不过不明白为什么要写成        add     r0, pc, #MEMCTRLTAB - (. + 8)  ?
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

9
 
MEMCTRLTAB ——这个相当于C的数组的首地址啊。下面存了一堆的数据。
ldr    r0, = GPFCON                    ;这一句的作用是什么,初始化这个I/O口是用作什么的?LED?
        ldr    r1, = 0x55aa      
        str    r1, [r0]

这个还不能是LED亮起来的。还要设置数据寄存器,也许这里用作别的,或者是那个板商没有删除。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

10
 
引用 8 楼 gooogleman 的回复:
MEMCTRLTAB ——这个相当于C的数组的首地址啊。下面存了一堆的数据。
ldr    r0, = GPFCON                    ;这一句的作用是什么,初始化这个I/O口是用作什么的?LED?
        ldr    r1, = 0x55aa      
        str    r1, [r0]

这个还不能是LED亮起来的。还要设置数据寄存器,也许这里用作别的,或者是那个板商没有删除。


你说的这个我知道,我的问题在7楼
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

11
 
看一下,GPFCON寄存器资料呀。
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

12
 
同问第一个问题


第二个问题是由于gpf接led,为了点亮led,必须将gpf配置为输出模式
GPFCON是GPF的配置寄存器。

如果你接的是GPB,那么改成GPBCON就行了。
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

13
 
GPF的问题已经明白。我的是接到GPB的,现在可以控制led了。


add  r0, pc, #MEMCTRLTAB - (. + 8)

这一句的作用应该是将MEMCTRLTAB的地址装入到r0中,
但为什么要写成这种格式?有什么道理?
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

14
 
基本上明白了。
这两个网址说的比较清楚:
[/url]
[url=http://topic.eeworld.net/u/20070122/16/fc8ec835-e373-41d2-885e-6360348d58b2.html]

多谢各位回帖!结了!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表