韦东山Linux嵌入式课程社区
直播中

郭燕

7年用户 270经验值
私信 关注

为什么汇编语言点亮LED灯就不需要关看门狗?

在视频第二课例子中有用汇编语言点亮一盏LED灯,有用C语言点亮一盏LED灯。
用C语言点亮一盏LED灯需要关看门狗;为啥汇编语言点亮LED灯就不需要关看门狗???????
两个例子的代码如下:
汇编实现点亮一盏LED灯的代码:
@******************************************************************************
@ File:led_on.S
@ 功能:LED点灯程序,点亮LED1
@******************************************************************************      
            
.text
.global _start
_start:     
            LDR     R0,=0x56000050      @ R0设为GPFCON寄存器。此寄存器
                                        @ 用于选择端口B各引脚的功能:
                                        @ 是输出、是输入、还是其他
            MOV     R1,#0x00000100        
            STR     R1,[R0]             @ 设置GPF4为输出口, 位[8:7]=0b01
            
            LDR     R0,=0x56000054      @ R0设为GPBDAT寄存器。此寄存器
                                        @ 用于读/写端口B各引脚的数据
            MOV     R1,#0x00000000      @ 此值改为0x00000010,
                                        @ 可让LED1熄灭
            STR     R1,[R0]             @ GPF4输出0,LED1点亮
MAIN_LOOP:
            B       MAIN_LOOP
用C语言实现点亮一盏LED灯的代码:
启动文件:
@******************************************************************************
@ File:crt0.S
@ 功能:通过它转入C程序
@******************************************************************************      
.text
.global _start
_start:
            ldr     r0, =0x53000000     @ WATCHDOG寄存器地址
            mov     r1, #0x0                     
            str     r1, [r0]            @ 写入0,禁止WATCHDOG,否则CPU会不断重启
            
            ldr     sp, =1024*4         @ 设置堆栈,注意:不能大于4k, 因为现在可用的内存只有4K
                                        @ nand flash中的代码在复位后会移到内部ram中,此ram只有4K
            bl      main                @ 调用C程序中的main函数
halt_loop:
            b       halt_loop
main函数:
#define GPFCON      (*(volatile unsigned long *)0x56000050)
#define GPFDAT      (*(volatile unsigned long *)0x56000054)
int main()
{
    GPFCON = 0x00000100;    // 设置GPF4为输出口, 位[9:8]=0b01
    GPFDAT = 0x00000000;    // GPF4输出0,LED1点亮
    return 0;

回帖(7)

罗颖

2019-7-11 13:51:14
为啥汇编语言点亮LED灯就不需要关看门狗???????  
答:要关,只是我为了突出怎么点灯,没给你讲关看门狗
举报

李妤欣

2019-7-11 13:57:57
谢谢
举报

何圆

2019-7-11 14:16:42
.S文件的后缀“s”必须大写吗,相关要求规则,哪里有啊?
举报

李旭彤

2019-7-11 14:35:44
无需大写
举报

更多回帖

发帖
×
20
完善资料,
赚取积分