打印

控制GPIO的代码

[复制链接]
699|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dengdc|  楼主 | 2014-9-19 12:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
heweibig| | 2014-9-19 12:15 | 只看该作者
怎么回事?

使用特权

评论回复
板凳
dengdc|  楼主 | 2014-9-19 12:16 | 只看该作者
PC指针跳到空白段去了

使用特权

评论回复
地板
dengdc|  楼主 | 2014-9-19 12:16 | 只看该作者
PC指针的当前值显示为0

使用特权

评论回复
5
zhenykun| | 2014-9-19 12:17 | 只看该作者
程序看看

使用特权

评论回复
6
dengdc|  楼主 | 2014-9-19 12:17 | 只看该作者
.title  "gpio.asm"
             .mmregs   
             .def  CodeStart
.stack    .usect  ".stack",100h
IODIR    .set  3400h                ;IODIR的地址为0x3400
IODATA .set  3401h                ;IODATA的地址为0x3401
   
            .text
CodeStart:

             MOV    #0ffh,port(#IODIR)        ;将gpio配置为输出
LOOP0:  MOV    #000h,port(#IODATA)    ;gpio输出全0,灯亮
             CALL   DELAY1                         ;延时
             MOV    #0FFh,port(#IODATA)    ;gpio输出全1,灯灭
             CALL   DELAY1                         ;延时
             B        LOOP0                           ;跳转到LOOP0
DELAY1:
             MOV    #999,AR0                     
             MOV    #499,AR1
LOOP1:  BANZ   LOOP1,*AR1-                 ;如果AR1不等于0,跳转到LOOP1
LOOP2:  BANZ   LOOP2,*AR0-                 ;如果AR0不等于0,跳转到LOOP2
             RET                                         ;执行完这条后就跳转到空白段了
             .end

使用特权

评论回复
7
jiaxw| | 2014-9-19 12:19 | 只看该作者
看这段程序,好像没问题啊,是不是还有其他的配置没有配,导致程序跑飞了呢

使用特权

评论回复
8
dengdc|  楼主 | 2014-9-19 12:19 | 只看该作者
这是.cmd文件里的,不知道有没有问题
MEMORY
{
    PAGE 0:

        MMR        : origin = 0000000h, length = 00000c0h
        SPRAM     : origin = 00000c0h, length = 0000040h
        VECS       : origin = 0000100h, length = 0000100h
        DARAM0  : origin = 0000200h, length = 0003E00h
        DARAM1  : origin = 0004000h, length = 0004000h
        DARAM2  : origin = 0008000h, length = 0004000h
        DARAM3  : origin = 000c000h, length = 0004000h

        SARAM0  : origin = 0010000h, length = 0004000h
        SARAM1  : origin = 0014000h, length = 0005000h
        SARAM2  : origin = 0019000h, length = 0003000h
        SARAM3  : origin = 001c000h, length = 0004000h
        SARAM4  : origin = 0020000h, length = 0004000h
        SARAM5  : origin = 0024000h, length = 0004000h
        SARAM6  : origin = 0028000h, length = 0004000h
        SARAM7  : origin = 002c000h, length = 0004000h
        SARAM8  : origin = 0030000h, length = 0004000h
        SARAM9  : origin = 0034000h, length = 0004000h
        SARAM10 : origin = 0038000h, length = 0004000h
        SARAM11 : origin = 003c000h, length = 0004000h
        SARAM12 : origin = 0040000h, length = 0004000h
        SARAM13 : origin = 0044000h, length = 0004000h
        SARAM14 : origin = 0048000h, length = 0004000h
        SARAM15 : origin = 004c000h, length = 0004000h

        CE0     : origin = 0050000h, length = 03b0000h
        CE1     : origin = 0400000h, length = 0400000h
        CE2     : origin = 0800000h, length = 0400000h
        CE3     : origin = 0c00000h, length = 03f8000h

        PDROM   : origin = 0ff8000h, length = 07f00h
   /*   VECS    : origin = 0ffff00h, length = 00100h */ /* reset vector */
}      


SECTIONS
{
        vectors  : {} > VECS   PAGE 0         /* interrupt vector table */
        .cinit      : {} > SARAM0 PAGE 0
        .text      : {} > SARAM1 PAGE 0
        isrs        : {} > SARAM2 PAGE 0

        .stack       : {} > DARAM0 PAGE 0
        .sysstack  : {} > DARAM0 PAGE 0
        .sysmem   : {} > DARAM1 PAGE 0
        .data        : {} > DARAM1 PAGE 0
        .bss          : {} > DARAM1 PAGE 0
        .const       : {} > DARAM1 PAGE 0

        .cio     : {} > DARAM1 PAGE 0
        .csldata:  {} > DARAM0 PAGE 0
  

}

使用特权

评论回复
9
spark周| | 2014-9-19 12:21 | 只看该作者
CMD文件的问题?

使用特权

评论回复
10
dengdc|  楼主 | 2014-9-19 12:21 | 只看该作者
检查说是,越界了,不知道怎么改

使用特权

评论回复
11
liliang9554| | 2014-9-19 12:23 | 只看该作者
开始处把堆栈设置好

使用特权

评论回复
12
wyjie| | 2014-9-19 12:23 | 只看该作者
楼上正解

使用特权

评论回复
13
dengdc|  楼主 | 2014-9-19 12:24 | 只看该作者
OK ,搞定

使用特权

评论回复
14
dengdc|  楼主 | 2014-9-19 12:25 | 只看该作者
多谢几位了

使用特权

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

本版积分规则

892

主题

13885

帖子

7

粉丝