打印

帮忙看看一个最简单的汇编

[复制链接]
1911|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
eastbest|  楼主 | 2009-9-11 15:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
买了一块板子,想学一下汇编,写了个LED程序,build成hex文件下载到板子后却没有任何反应,麻烦各位帮忙看看是不是程序问题还是哪里需要设置一下:
STACK_TOP       EQU     0x20000200      ;SP初始值,常数
  
        AREA        RESET,CODE,ALIGN=3
        DCD         STACK_TOP                  ; 栈顶(MSP)
        DCD         Start                            ; 复位向量
        ENTRY                                         ;指示程序从这里开始执行
               
Start                                                      ;主程序开始
        LDR     r0,=0x40011c00                   ;port F地址
        LDR     r1,=0x24444444                   ;mode为输出;复位默认值为0,灯亮。
        STR     r1,[r0]
deadloop
        B       deadloop                ;工作完成后,穷循环
        END
沙发
mcuisp| | 2009-9-11 15:36 | 只看该作者
想要STM32的IO有输出,要做不少工作:
1\打开GPIO的CLK
2\有可能还要设置AFIO的remap.
3\设置为推挽输出
4\才是送输出值.

使用特权

评论回复
板凳
eastbest|  楼主 | 2009-9-11 18:06 | 只看该作者
本帖最后由 eastbest 于 2009-9-11 18:07 编辑

十分感谢楼上的及时指点!问题已解决,原因是没有打开GPIO的CLK!我是做硬件的,刚从51转到ARM,算是个ARM菜鸟,希望各位高手多多帮忙!

修改后的程序如下:
STACK_TOP       EQU     0x20000200      ;SP初始值,常数
  
        AREA        RESET,CODE,ALIGN=3
        DCD         STACK_TOP                  ; 栈顶(MSP)
        DCD         Start                            ; 复位向量
        ENTRY                                         ;指示程序从这里开始执行
               
Start                                                   ;主程序开始

        LDR     r0,=0x40021018                ;RCC_APB2ENR地址
        LDR     r1,=0x00000080                ;打开PortF的时钟
        STR     r1,[r0]

        LDR     r0,=0x40011c00                 ;port F地址
        LDR     r1,=0x24444444                 ;mode为输出;IO口输出复位值为0,灯亮。
        STR     r1,[r0]

deadloop
        B       deadloop                ;工作完成后,循环
        END

使用特权

评论回复
地板
mcuisp| | 2009-9-11 18:22 | 只看该作者
楼主喜欢用汇编,算是同道中人呀,哈哈

使用特权

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

本版积分规则

5

主题

176

帖子

0

粉丝