请问如何在STARTUP.S中打印信息

fantasy84 2009-07-23 02:42:56
想在OAL层的STARUP.S中添加点打印信息看看程序死在哪,怎么添加呢,该调用哪个函数? 汇编不是很明白
...全文
123 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
fantasy84 2009-07-23
  • 打赏
  • 举报
回复
[Quote=引用 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口电平
[/Quote]
GPN是?
上面的GPNDAT,GPNCON又是什么,是不是GPIO的寄存器,为什么要写成=GPNCON "="是什么意思
xunjingzhpu 2009-07-23
  • 打赏
  • 举报
回复
[Quote=引用 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
类似 这种 加到代码里面就可以了
[/Quote]

这个宏拉高的是GPN的12-15电平,同理可以拉高其他gpio口电平
dgw6698555 2009-07-23
  • 打赏
  • 举报
回复
学习~~
fantasy84 2009-07-23
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ztg328 的回复:]
Trueman_onlyme  的回答已经很清楚了  在你需要点灯的地方只需调用哪个宏  只需要写上 LED_ON  然后数字  然后是b  .

[/Quote]
呵呵,原来是这样,小弟以前搞硬件的,这方面不太懂
这样说来这段代码是所有板子都通用的?具体又是哪个灯亮呢,这应该和硬件接法有关吧
ZTG328 2009-07-23
  • 打赏
  • 举报
回复
Trueman_onlyme 的回答已经很清楚了 在你需要点灯的地方只需调用哪个宏 只需要写上 LED_ON 然后数字 然后是b .
fantasy84 2009-07-23
  • 打赏
  • 举报
回复
UP
fan0311 2009-07-23
  • 打赏
  • 举报
回复
这个硬件上是怎么控制的呢
GPFCON,GPFUP
之类的又是什么。
fan0311 2009-07-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 gooogleman 的回复:]
点灯就是
LED显示控制
然后下一句是B.
[/Quote]
我知道是LED显示控制啊,我的意思这个LED硬件上应该用什么控制的,因为我板子上正好是GPIO连着LED的
前面我先试着在BOOTLOADER里加入代码,就是直接往GPIO的寄存器写值,没有反应,是因为没有初始化吗
如果不用GPIO 还有什么方法吗,最好能有点例子,不是很懂。。另外感谢指点
-小仙- 2009-07-23
  • 打赏
  • 举报
回复


MACRO

LED_ON $data

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

ldr r10, =GPNDAT
ldr r11, [r10]
bic r11, r11, #0xF000
ldr r12, =$data
mov r12, r12, lsl #12 ; [15:12]
orr r11, r11, r12
str 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

类似 这种 加到代码里面就可以了
gooogleman 2009-07-23
  • 打赏
  • 举报
回复
点灯就是
LED显示控制
然后下一句是B.
-小仙- 2009-07-23
  • 打赏
  • 举报
回复
  ; Turn on all LEDs.
;
ldr r0, =GPFCON
ldr r1, =0x55aa
str r1, [r0]
ldr r0, =GPFUP
ldr r1, =0xff
str r1, [r0]
ldr r0, =GPFDAT
ldr r1, =0x0
str r1, [r0]
fantasy84 2009-07-23
  • 打赏
  • 举报
回复
UART在BOOTLOADER里已经配置好,BOOTLOARDER里的信息已经可以看到,现在就不是不明白在汇编中怎么调

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

小弟刚接触软件这方面的东西,还不是很明白,都是写菜鸟问题.
gooogleman 2009-07-23
  • 打赏
  • 举报
回复
初始化串口,写个串口汇编函数,每次调用即可。

不过我觉得还是点灯吧。
sdssly 2009-07-23
  • 打赏
  • 举报
回复
两个方法 自己开辟一个sdram中的地方,把信息写入 死机之后 reset,在bootloader中访问物理地址

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

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

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

19,500

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧