打印

DSP汇编学习 请指正!

[复制链接]
4454|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
itelectron|  楼主 | 2010-1-31 11:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 itelectron 于 2010-1-31 12:02 编辑

DSP资源分配

PC
ACC
PREG
TREG
ST0
STI
RPTC
TOS
AR0
AR1
AR2
AR3
AR4
AR5
AR6
AR7
IMR  ;中断屏蔽寄存器
IFR ;中断标志寄存器
GREG

0000H-003FH中断向量
0040H-0043H安全密码
0044H-0FFFH用户ROM   ;FLASH 扇区0  大小4k
1000H-3FFFH用户ROM   ;FLASH 扇区1  大小12k  
4000H-6FFFH用户ROM   ;FLASH 扇区2  大小12k
7000H-7FFFH用户ROM   ;FLASH 扇区3  大小4k
8000H-87FFH用户SRAM  ;大小2k
FF00H-FFFFH用户SRAM  ;大小256byte
DSP2406的8000H-FDFFH不能用

相关帖子

沙发
itelectron|  楼主 | 2010-1-31 12:00 | 只看该作者
DSP 竟然有3个独立的 地址空间
分别是
程序存储器
数据存储器
IO


每个空间的容量为64K X  16位

使用特权

评论回复
板凳
itelectron|  楼主 | 2010-1-31 12:02 | 只看该作者
51  是2 个独立的空间  ROM  RAM
ARM 2440 是一个连续的空间

使用特权

评论回复
地板
itelectron|  楼主 | 2010-1-31 12:10 | 只看该作者
先说2407的  内部 ROM (FLASH)  有32K   容量


0000H-003FH 中断向量表
0044H-0FFFH 用户ROM   ;FLASH 扇区0  大小4k
1000H-3FFFH 用户ROM   ;FLASH 扇区1  大小12k  
4000H-6FFFH 用户ROM   ;FLASH 扇区2  大小12k
7000H-7FFFH 用户ROM   ;FLASH 扇区3  大小4k

要访问的话   引脚MP/MC得为低电平。

使用特权

评论回复
5
itelectron|  楼主 | 2010-1-31 12:21 | 只看该作者
本帖最后由 itelectron 于 2010-1-31 12:25 编辑

2407  这种 3独立 寻址结构 可以实现  数据传送  指令执行  IO控制  并行 操作
所以优于51那种结构
是否优于ARM2440那种结构呢??因该优于吧

使用特权

评论回复
6
itelectron|  楼主 | 2010-1-31 12:51 | 只看该作者
DSP的 RAM  寻址空间为64K

内部空间为 2K +- B0 (256) + B1(256) + B2(32)  
其中B0(256)可做ROM 或RAM

使用特权

评论回复
7
itelectron|  楼主 | 2010-1-31 13:04 | 只看该作者
其中外设被映射在 RAM寻址空间内 比如事件管理器 AD  SPI  SCI   CAN PLL 等
数据空间的 操作是128BYTE  页寻址  就是 页指针DP+偏移量
每次寻址不同页的数据 空间时都要 LDP #XX页
然后对偏移量送数据 读数据(对外设寄存器)也要找到其页码然后加上偏移量 才能进行操作

相对于 51 和ARM2440 麻烦了许多:L

使用特权

评论回复
8
itelectron|  楼主 | 2010-1-31 13:13 | 只看该作者
;----------------------------------------------------------------------
;系统初始化子程序
;----------------------------------------------------------------------

SYS_INIT
               
        SETC        INTM                        ;关闭中断
        SPLK        #0h, IMR                    ;屏蔽所有中断
        SPLK        #0FFh, IFR                ;清中断标志

;复位后初始化PDP中断标志               
        LDP        #PIRQR0>>7  确定页表                  
        LACC        PIRQR0        寄存器偏移量  PIRQR0 .set 7010h
        AND        #0FFFEh
        SACL        PIRQR0
        LACC        PIRQR2                ; 清 PDP中断标志
        AND        #0FFFEh
        SACL        PIRQR2
        POINT_EV
        LACC        EVAIFRA                ; 清PDPINTA中断标志
        OR        #0001h
        SACL        EVAIFRA
        LDP        #EVBIFRA>>7
        LACC        EVBIFRA                ; 清PDPINTB中断标志
        OR        #0001h
        SACL        EVBIFRA
        CLRC        SXM                ;清符号扩展模式
        CLRC        OVM                ;复位溢出模式
        CLRC        CNF                    ;配置B0位数据区
        SPM        0
        LAR        AR1, #stack_start        ;初始化中断堆栈指针
        MAR        *,AR1
        SPLK        #00C0h, GPR0        ;I/O存储器等待状态置1
        OUT        GPR0, WSGR
    SPLK        #0085h, SCSR1        ; 乘4 PLL, ADC使能, EV使能      
          RET

使用特权

评论回复
9
algr| | 2010-1-31 13:23 | 只看该作者
别拿51的思维来思考dsp
哈哈

使用特权

评论回复
10
micropower| | 2010-1-31 17:04 | 只看该作者
本帖最后由 micropower 于 2010-1-31 17:22 编辑

同意楼上的,要比较的话,楼主还不如拿各种DSP芯片进行横向比较。TI的其他DSP系列和你用的C2000比较。C5000的和你这个2000的汇编完全不一样。
再比较一下Microchip的DSP,,比如dsPIC30F4013,同是16位,同是做电机控制的,但也只有两个存储器,没有IO的。但微芯的DSP有两个独立的数据存储器。如果我没记错的话TI的DSP的指令类型和51、arm是一样的,都是CISC指令。而微芯的应该是RISC指令。没用过ADI的DSP,所以期待高手来讲解。

使用特权

评论回复
11
cauhorse| | 2010-1-31 18:24 | 只看该作者
同意楼上的,要比较的话,楼主还不如拿各种DSP芯片进行横向比较。TI的其他DSP系列和你用的C2000比较。C5000的和你这个2000的汇编完全不一样。
再比较一下Microchip的DSP,,比如dsPIC30F4013,同是16位,同是做电机控 ...
micropower 发表于 2010-1-31 17:04

DSP、51、ARM是CISC的?LS从哪里看的。。。
它们都是RISC的。你电脑里跑的那个CPU,那个一般才是CISC的。
ARM 不就叫Advanced RISC Machines嘛。

使用特权

评论回复
12
leezheng2008| | 2010-3-3 17:29 | 只看该作者
好啊,专业

使用特权

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

本版积分规则

个人签名:MARK: zhi kan ji shu

274

主题

2762

帖子

8

粉丝