首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

求助 关于2812编程

求助 关于2812编程

刚开始学2812,以前学过点54xx,想动手写2812的汇编。

下面是一段54xx代码:

           .mmregs          ;54X 存储器影射寄存器定义            
          .global  _main   ;声明_main为全局符号

_main:
    nop
;-----------------------------------------------------   
;----------------------初始化 CPU---------------------
;-----------------------------------------------------   
    ssbx  INTM            ; INTM=1,禁止所有可屏蔽中断
    ld    #0, DP          ; 设置数据页指针DP=0
        stm   #0, CLKMD       ; 切换CPU内部PLL到分频模式
;-------------------------------------------------------------------       
;CLKMD DEFINITIONS:       
;    PLLMUL (bit 15-12) - 0000             PLL multiplier = 0 (mult by 1)
;    PLLDIV (bit 11)    -     0           &nbspLL divider = 0 (div by 1)
;    PLLCOUNT (bit 10-3)-      11111111    PLL counter set to max
;    PLLONOFF (bit 2)   -              1  &nbspLL on
;    PLLNDIV (bit 1)    -               1  Select PLL mode
;    PLLSTATUS (bit 1)  -                x PLL Status (read only)
;    ------------------
;                          0000011111111111 = 0x07ff CLKMD=1 X CLKIN
;--------------------------------------------------------------------               
Statu1:
    ldm   CLKMD, A
    and   #01b, A         
    bc    Statu1, ANEQ          ;检查是否已经切换到分频模式?
        stm   #0x07ff,CLKMD   ;设置DSP 时钟 10MHZ
;--------------------------------------------------------------------       
        nop
        stm   #0x3FF2,PMST  
;--------------------------------------------------------------------  
MST DEFINITIONS
;    IPTR (bit 15-7) -  001111111          Run-time Interrupt vector location = 0x3f80 (for now)
;    MP/~MC (bit 6)  -           1         Turn off internal Instruction ROM (use RAM)
;    OVLY   (bit 5)  -            1        Turn on internal RAM
;    AVIS   (bit 4)  -             1       Address visibility on
;    DROM   (bit 3)  -              0      Data ROM of FF00~FFFF is external
;    CLKOFF (bit 2)  -               0     Clockout  enabled,only for use clkout=cpu clock
;    SMUL   (bit 1)  -                1    Saturate before multiply on MAC
;    SST    (bit 0)  -                 0   Do not saturate before store
;                      -----------------
;                      0011 1111 1111 0010 = 0x3ff2
;*---------------------------------------------------------------------*/       


想请教下老手,如果用纯汇编在2812上写类似的东西,有几点不明白:
1、 .mmregs是否还要
2、2812里面是不是没有了,对位的操作了。
3、对2812频率的设置是不是,不需要再跳向分频模式,再切换频率,也不要再判断了。
4、另外能不能解答下dsp是怎么跳向_main的,这个问题在学54xx的时候也没完全搞清楚。知道54xx从ff80开始执行,然后中断向量表可以搬移,是不是在编译的时候选的参数就是确定_main是主程序的入口地址。还是CCS自动找.TEXT段的第一句的代码。
返回列表