3800|14

73

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请问如何在STARTUP.S中打印信息 [复制链接]

想在OAL层的STARUP.S中添加点打印信息看看程序死在哪,怎么添加呢,该调用哪个函数? 汇编不是很明白

最新回复

GPN是? 上面的GPNDAT,GPNCON又是什么,是不是GPIO的寄存器,为什么要写成=GPNCON "="是什么意思  详情 回复 发表于 2009-7-23 22:47
点赞 关注

回复
举报

79

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
两个方法 自己开辟一个sdram中的地方,把信息写入 死机之后 reset,在bootloader中访问物理地址

另外是bootloader中把uart配置好 startup.s中把信息输出到uart的寄存器 这样可以通过超级终端看

但是需要注意加入的代码不要破坏了原来的寄存器内容

startup.s可以使用jtag单步跟踪的 也可以试试
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
初始化串口,写个串口汇编函数,每次调用即可。

不过我觉得还是点灯吧。
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

4
 
UART在BOOTLOADER里已经配置好,BOOTLOARDER里的信息已经可以看到,现在就不是不明白在汇编中怎么调

还有如果点灯的话该怎么做,直接写GPIO吗?汇编里又该怎么做

小弟刚接触软件这方面的东西,还不是很明白,都是写菜鸟问题.
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

5
 
  1.   ; Turn on all LEDs.
  2.     ;
  3.     ldr                r0, =GPFCON
  4.     ldr                r1, =0x55aa
  5.     str                r1, [r0]
  6.     ldr                r0, =GPFUP
  7.     ldr                r1, =0xff
  8.     str                r1, [r0]
  9.     ldr                r0, =GPFDAT
  10.     ldr                r1, =0x0
  11.     str                r1, [r0]
复制代码
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

6
 
点灯就是
LED显示控制
然后下一句是B.
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

7
 


  1.     MACRO

  2.         LED_ON     $data

  3.         ldr          r10, =GPNPUD
  4.         ldr          r11, [r10]
  5.         bic          r11, r11, #0xFF000000     ; Pull-Up-Down Disable
  6.         str          r11, [r10]

  7.         ldr          r10, =GPNDAT
  8.         ldr          r11, [r10]
  9.         bic          r11, r11, #0xF000
  10.         ldr          r12, =$data
  11.         mov          r12, r12, lsl #12     ; [15:12]
  12.         orr          r11, r11, r12
  13.         str          r11, [r10]

  14.         ldr          r10, =GPNCON
  15.         ldr          r11, [r10]
  16.         bic          r11, r11, #0xFF000000
  17.         orr          r11, r11, #0x55000000     ; GPN[15:12] Output .
  18.         str          r11, [r10]

  19.     MEND

  20. .......

  21. LED_ON 0x1
复制代码

类似 这种 加到代码里面就可以了
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用 5 楼 gooogleman 的回复:
点灯就是
LED显示控制
然后下一句是B.

我知道是LED显示控制啊,我的意思这个LED硬件上应该用什么控制的,因为我板子上正好是GPIO连着LED的
前面我先试着在BOOTLOADER里加入代码,就是直接往GPIO的寄存器写值,没有反应,是因为没有初始化吗
如果不用GPIO 还有什么方法吗,最好能有点例子,不是很懂。。另外感谢指点
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

9
 
这个硬件上是怎么控制的呢
GPFCON,GPFUP
之类的又是什么。
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

10
 
UP
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

11
 
Trueman_onlyme  的回答已经很清楚了  在你需要点灯的地方只需调用哪个宏  只需要写上 LED_ON   然后数字   然后是b  .
 
 
 

回复

95

帖子

0

TA的资源

一粒金砂(初级)

12
 
引用 10 楼 ztg328 的回复:
Trueman_onlyme? 的回答已经很清楚了? 在你需要点灯的地方只需调用哪个宏? 只需要写上 LED_ON? 然后数字? 然后是b? .


呵呵,原来是这样,小弟以前搞硬件的,这方面不太懂
这样说来这段代码是所有板子都通用的?具体又是哪个灯亮呢,这应该和硬件接法有关吧
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

13
 
学习~~
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

14
 
引用 6 楼 trueman_onlyme 的回复:
Assembly code

    MACRO

        LED_ON     $data

        ldr          r10, =GPNPUD
        ldr          r11, [r10]
        bic          r11, r11, #0xFF000000; Pull-Up-Down Disablestr          r11, [r10]

        ldr          r10, =GPNDAT
        ldr          r11, [r10]
        bic          r11, r11, #0xF000
        ldr          r12, =$datamov          r12, r12,lsl #12; [15:12]        orr          r11, r11, r12str          r11, [r10]

        ldr          r10, =GPNCON
        ldr          r11, [r10]
        bic          r11, r11, #0xFF000000
        orr          r11, r11, #0x55000000; GPN[15:12] Output .str          r11, [r10]

    MEND

.......

LED_ON 0x1
类似 这种 加到代码里面就可以了


这个宏拉高的是GPN的12-15电平,同理可以拉高其他gpio口电平
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

15
 
引用 13 楼 xunjingzhpu 的回复:
引用 6 楼 trueman_onlyme 的回复:
Assembly code

? ? MACRO

? ? ? ? LED_ON? ? $data

? ? ? ? ldr? ? ? ? ? r10, =GPNPUD
? ? ? ? ldr? ? ? ? ? r11, [r10]
? ? ? ? bic? ? ? ? ? r11, r11, #0xFF000000; Pull-Up-Down Disablestr? ? ? ? ? r11, [r10]

? ? ? ? ldr? ? ? ? ? r10, =GPNDAT
? ? ? ? ldr? ? ? ? ? r11, [r10]
? ? ? ? bic? ? ? ? ? r11, r11, #0xF000
? ? ? ? ldr? ? ? ? ? r12, =$datamov? ? ? ? ? r12, r12,lsl #12; [15:12]? ? ? ? orr? ? ? ? ? r11, r11, r12str? ? ? ? ? r11, [r10]

? ? ? ? ldr? ? ? ? ? r10, =GPNCON
? ? ? ? ldr? ? ? ? ? r11, [r10]
? ? ? ? bic? ? ? ? ? r11, r11, #0xFF000000
? ? ? ? orr? ? ? ? ? r11, r11, #0x55000000; GPN[15:12] Output .str? ? ? ? ? r11, [r10]

? ? MEND

.......

LED_ON 0x1
类似 这种 加到代码里面就可以了


这个宏拉高的是GPN的12-15电平,同理可以拉高其他gpio口电平

GPN是?
上面的GPNDAT,GPNCON又是什么,是不是GPIO的寄存器,为什么要写成=GPNCON "="是什么意思
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

关闭
站长推荐上一条 1/9 下一条

 
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
快速回复 返回顶部 返回列表