DSP汇编指令学习笔记(9)
2. child函数返回时,如果有返回值,则返回值会被存放在A4或者A3(返回值是结构体,
返回的是结构体的指针)中。
i. 如果返回值是结构体,则返回的是结构体的指针,存放在A3. Parent函数需要
在第一时间把这个结构体copy过来。
How a child function response a call
注:现在FP指针没有使用,都是直接使用SP指针的
Code optimize
For DSP, it has follow optimizations.
Short function will be inline Options
The options
1. When optimizing with the --opt_level=3(High performance optimization level (file
level)) option or --opt_level=2 option (aliased as -O3 and -O2,respectively), the compiler automatically inlines small functions.
2.
A command-line option,--auto_inline=size, specifies the size threshold for automatic inlining. This option controls only the inlining of functions that are not explicitly declared as inline. 3. 4. 5. 6.
when –auto—inline is not set, but optimizing with –O2 or –O3, complier will inline a function that smaller than a default size.
If –auto-inline is set to 0, auto-inline optimization will be diabled.
if –auto-inline is set to a non-zero value, complier will inline any functions smaller than this size.
in rules.mk file, CCFLAGS +=-O3#.
Complier actions
This
31
For GCC complier, if not use
Loop
What Disqualifies a Loop from Being Software-Pipelined
Interrupt & OS & Chip
1. 中断向量事件寄存器(INT Vector?Event Id):PRO_INT_MUX_ADDRESS:0x01800104。
此寄存器中记录了每个向量的中断Event Id。每个Event Id是8bit. a) 当触发了某种中断事件,则可以得到其中断向量,便于软件处理。
2. 在OSE中,中断是以中断进程OS_INT_PROC process的形式运行的。触发一个中断就
是启动对应的进程。
a) create_process函数创建中断进程并创建中断管理结构
b) pcb_t *odo_vect2pcb[16]是操作系统记录中断向量到中断进程的MAPPING。下标是
中断向量号
怎么把外部硬件的pin映射到中断向量
http://www.embexperts.com/forum.php?mod=viewthread&tid=11&page=1
硬件设备会连接到PIN管脚上。当一个管脚上触发中断后,CPU可以在指定的寄存器中读取到一个数字——硬件中断编号(或者叫硬件Event Id)。 硬件中断编号应各种CPU不一样而不一样。当增加一个外设中断时,就要定义了一个硬件中断号,则对应要增加一个此硬件中断的处理函数。
注册中断回调函数时,需要把硬件中号和中断向量号同时传入。则操作系统会记录硬件中断号到中断向量的对应关系。
则触发了此硬件中断后,操作系统会读取硬件中断号,然后获取Vector Id,然后直接跳转到Vector的起始地址执行。
Vector起始地址就是中断回调函数。
各个中断回调函数必须卸载”.vector x” segment下面,且每个segment下只有一个处理函数。 很多时候,为了提高中断回调的速度,这个回调函数直接使用汇编实现。
当然,中断函数不一定就是真正的中断任务完成函数,比如在OSE中是向对应的中断任务发送一个信号量的,触发中断任务。
Interrupt registers(All 32bits)
1. ICR:中断清除寄存器, user for INT type interrupts. If bitX is equal to 1, means vector X
interrupt is cleared.
32
a) When create Vector X interrupt, clear it.
2. IER:中断使能掩码寄存器。操作系统中会有一个对应的软件中断使能掩码全局变量。
它只对INT Type的中断有效。
怎么为芯片定制操作系统
Interrupt定制
extern cregister volatile unsigned int IER; //interrupt enable register extern cregister volatile unsigned int ICR; //interrupt clear register extern cregister volatile unsigned int ISR; // extern cregister volatile unsigned int CSR;//
1. 中断事件与中断向量:需要把硬件的中断事件映射到操作系统的中断向量中(硬件会提提供最多16种中断事件,而操作系统会具有16个中断向量)。
2. 中事件与中断向量的MAPPING:在芯片中,也有中断向量的概念,或者理解是硬件对
中断事件的编号。
a) 比如在DSP中,PRO_INT_MUX_ADDRESS:0x01800104寄存器就是以中断向量为下标,记录了中断事件对应的中断向量。
b) 当触发了某种中断事件时就很容易得到其中断向量值。
OSE进程切换
基于信号量的进程切换 CPU内切换
OSE是基于Signal的切换的。
如果是CPU内的Signal进程切换,本质是软件触发的切换。
它的实现方法是在Send的时候就触发切换。即Sender进程触发切换,看receiver进程是否比自己的优先级高。如果高则切换到receiver进程上。
CPU间切换
中断方式切换
33
中断方式切换
MDMA/SDMA/IDMA
1. CPU读写内存都要通过L1 Cache。只是读需要等待,而写不需要等待
a) 读需要等待从外面把数据搬进来
b) 写的话,数据放在L1 Cache中,而可以立即再读。再读的时候因为之前的写,已
经可以在L1 Cache中命中了,所以会直接从L1 Cache中获取(实际外存中还没有更新)。
2. MDMA是CPU访问(读写)核外资源的接口。当CPU访问核外资源时,它的访问过
程如下:
a) 首先通过L1 Controller(L1P/L1D Controller)访问L1 cache. b) (如果自己没有)L1 Controller 则访问L2 Controller
c) (如果自己没有)L2 Controller则访问EMC
d) EMC通过MDMA接口的BUS资源,把数据从外存中直接搬移到L2 Controller e) (如果是Cached数据)L2 controller把数据保存在自己的Cache中,然后通过IDMA
搬移给L1 Controller
i. f)
(如果不是Cache数据),则L2 controller直接通过IDMA搬移给L1 Controller(可见没有cache的数据在一次搬移时可能会更快) L1 controller把数据保存在自己的Cache中,然后回给CPU。
3. SDMA是CPU核外设备访问核内资源的接口。它的访问过程如下:
a) 外设通过EMC的SDMA接口,访问EMC
b) EMC会访问L2 Controller,如果L2 中有数据,则L2 Controller会通知EMC取数
据。 i. 如果L2 没有,则L2 controller会访问L1 Controller,通过IDMA获取数据。 c) EMC会分配SDMA接口资源,把数据搬移到外面。
34
…… 此处隐藏:1931字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [实用模板]第八章:法国“新浪潮”与“左岸派”
- [实用模板]2021年北京上半年临床医学检验技师生物
- [实用模板]SAP GUI 7.10客户端安装配置文档
- [实用模板]2001年临床执业医师资格考试综合笔试试
- [实用模板]36机场工作实用英语词汇总结
- [实用模板](一)社会保险稽核通知书
- [实用模板]安全教育主题班会材料
- [实用模板]濉溪县春季呼吸道传染病防控应急演练方
- [实用模板]长沙房地产市场周报(1.30-2.3)
- [实用模板]六年级数学上册典中点 - 图文
- [实用模板]C程序设计(红皮书)习题官方参考答案
- [实用模板]中国证监会第一届创业板发行审核委员会
- [实用模板]桥梁工程复习题
- [实用模板]2011学而思数学及答案
- [实用模板]初中病句修改专项练习
- [实用模板]监理学习知识1 - 图文
- [实用模板]小机灵杯四年级试题
- [实用模板]国贸专业毕业论文模板
- [实用模板]教育学概论考试练习题-判断题4
- [实用模板]2015届高考英语一轮复习精品资料(译林
- 00Nkmhe_市场营销学工商管理_电子商务_
- 事业单位考试法律常识
- 诚信教育实施方案
- 吉大小天鹅食品安全检测箱方案(高中低
- 房地产销售培训资料
- 高一地理必修1复习提纲
- 新概念英语第二册lesson_1_练习题
- 证券公司内部培训资料
- 小学英语时间介词专项练习
- 新世纪英语专业综合教程(第二版)第1册U
- 【新课标】浙教版最新2018年八年级数学
- 工程建设管理纲要
- 外研版 必修一Module 4 A Social Surve
- Adobe认证考试 AE复习资料
- 基于H.264AVC与AVS标准的帧内预测技术
- 《食品检验机构资质认定管理办法》(质
- ABB变频器培训课件
- (完整版)小学说明文阅读练习题及答案
- 深思洛克(SenseLock) 深思IV,深思4,深
- 弟子规全文带拼音




