教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 实用模板 >

DSP汇编指令学习笔记(9)

来源:网络收集 时间:2026-01-31
导读: 2. child函数返回时,如果有返回值,则返回值会被存放在A4或者A3(返回值是结构体, 返回的是结构体的指针)中。 i. 如果返回值是结构体,则返回的是结构体的指针,存放在A3. Parent函数需要 在第一时间把这个结构

2. child函数返回时,如果有返回值,则返回值会被存放在A4或者A3(返回值是结构体,

返回的是结构体的指针)中。

i. 如果返回值是结构体,则返回的是结构体的指针,存放在A3. Parent函数需要

在第一时间把这个结构体copy过来。

How a child function response a call

注:现在FP指针没有使用,都是直接使用SP指针的

Code optimize

In rules.mk file, defined CCFLAGS

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字,全部文档内容请下载后查看。喜欢就下载吧 ……
DSP汇编指令学习笔记(9).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/521320.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)