Chinaunix首页 | 论坛 | 博客
  • 博客访问: 172987
  • 博文数量: 45
  • 博客积分: 1228
  • 博客等级: 中尉
  • 技术积分: 450
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-26 11:37
文章分类
文章存档

2013年(4)

2012年(3)

2011年(20)

2010年(18)

我的朋友

分类: 嵌入式

2011-02-16 10:40:00

关于2440的录放音:

IIS总线(5根):IISDO(数据输出)IISDI(数据输入)IISSCLK(系统串行时钟)每个时钟用于传送一位音频信号 = 采样频率 * 声道数 * 每声道位数,IISLRCK(等于采样频率)CDCLK CDCLK为该芯片提供系统同步时钟,即编解码时钟,主要用于音频的A/DD/A采样时的采样时钟,一般CDCLK256fs384fsIIS只负责数字音频信号的传输,而要真正实现音频信号的放、录,还需要额外的处理芯片(在这里,我们使用的是UDA1341)。

 

L3总线(3个引脚):L3MODE(低电平表示数据线上传输的L3的各种模式,即DATA0,DATA1,STATUS)L3DATA(每次传输8位数据,数据或地址)L3CLK(L3的时钟控制)

 

中断和异常

异常为ARM5种异常模式(SVC,UND,ABT,IRQ,FIQ),中断为板级的概念外部的各种数据中断(LCDNET,USB,UART,DMA)中断通过IC(中断控制器UIRQ,UFIRQ)最终到达ARM变位中断异常(IRQ)或快速中断异常(FIQ

SVC模式下关于SWI软中断异常。

 

模拟操作系统的系统调用过程:

1.开始时arm处于SVC模式,

2.系统启动,从SVC模式跳入用户模式下

mov r0,#0xD0

MSR cpsr_cxsf, r0

1.          执行用户态的程序

2.          调用系统调用

Swi 0x0; 产生软件中断

3.          执行系统程序

4.          调回用户态(usr)

Swi 0x0

Movs pc, lr; 回复PC并回复CPSR

 

 

关于movs为何不能用两条指令代替:若先mov pc,lr 则不会执行到MSR 改变模式, 若先改变模式,则访问到的lr不是改变状态前的lr寄存器(模式改变寄存器 也为不同的寄存器)

异常:

1、   修改CPU模式由SVC模式为用户模式

2、   分别设好SVC和USER模式的sp

3、   进入C 代码,注册SVC_handler(汇编)0x8 = b handler

4、   用内嵌汇编 产生软中断SWI 0X0(触发异常)

5、   PC跳转0x8处执行B指令。

6、   硬件响应(pc – >lr, cpsr->spsr, cpsr->IRQ, pc<-0x8);

7、   将r0-r12 和 lr保存(包括硬件的PC CPSR 软件的R0-R12 , LR, SPSR)

8、   调用中断处理函数

9、   恢复r0-r12 和 lr

10、      恢复用户模式并返回PC。Movs pc lr 或(LDMFD  sp!,{R0-R12, pc}^)

 

中断:

1.          0x18:irq_handler注册中断函数。

2.          设置SVC 和IRQ的sp。

3.          返回SVC。

4.          设置GPFCON 设置位中断有效。

5.          设置EXTINT0 设置触发模式 上升沿或下降沿。

6.          (清除以前的PND)检测SRCPND 是否有中断产生。(中断控制器)。

7.          设置INTMASK使掩码打开。(中断控制器)

8.          (清除以前的PND)检测INTPND是否有中断通过。(中断控制器)

9.          打开IRQ模式下的中断位(CPSR)。

10.       进入ARM硬件响应(pc – >lr, cpsr->spsr, cpsr->IRQ, pc<-0x18)。

11.       将r0-r12 和 lr保存。

12.       调用中断处理函数。

13.       恢复r0-r12 和 lr。

14.       subs pc, lr,#4。(快速中断情况下执行lr中下一条指令)

 

bootloader总结:

1.          控制IO有两种GPIO和CPLD ,LED 由CPLD实现,BEEP ,DIP,BUTTUN(KEY)由GPIO实现。

2.          UART 串口初始化(起始位,数据位,停止位,奇偶校验,波特率),时钟分频设置,设置IO功能服用,设置为输入。串口读写(判断STAT寄存器)。实现STDIO标准IO。可移植性。

3.          实现了 download go 命令用Xmodem下载和执行BIN文件。

4.          关于NANDflash的驱动读写。数据线和地址线的复用。实现boot的固化和自加载。

5.          IIS和L3总线实现对UDA1341的音频信号的输入输出,用软件实现L3总线。WAV的文件格式。

6.          异常,中断,DMA。DMA-player。DMA工作原理。

 

阅读(2024) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~