免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 912 | 回复: 0
打印 上一主题 下一主题

2440IIS,L3介绍和ARM中断异常机制实现、myboot总结 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-02-16 10:40 |只看该作者 |倒序浏览

关于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工作原理。

 

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP