2019-07-16 15:03发布
justperky 发表于 2015-10-25 11:26 PRU开发一直是个难题,希望有所帮助
isseed 发表于 2015-10-31 22:27 PRUSS(Programmable Real time Unit Subsystem),可独立编程实现一些实时性要求高的个性化需求,实 ...
最多设置5个标签!
不懂,可以讲讲什么是PRU么?
可独立编程实现一些实时性要求高的个性化需求,实现产品的差异化。
图1 PRUSS框图
PRUSS包括两个PRU,通过自己的SCR与子系统的中断控制器、指令内存、数据内存、以及系统SCR相连。PRU不是一个加速器,它是32-bit Load/Store RISC架构小端处理器,每个PRU有32个通用寄存器R0~R31,4K byte指令RAM,512 byte数据RAM,指令RAM是独立的,互相之间不能访问,但数据RAM可以通过映射地址互相访问;专用的30个输入引脚和32个输出引脚(注:OMAPL137系列没有PRU外部引脚)。PRU没有Cache、指令流水线、及乘法指令。
1.1 指令空间
每个PRU 独立的指令空间为0x00000000~0x00000FFF。指令空间由外部主处理ARM/DSP 初始化,程序指针PC 是32bit 字地址,不是字节地址,如PC=2,代表指令地址0x08。
表 1 PRU 指令空间映射表
1.2 数据空间
每个PRU 独立的512byte 数据RAM 空间为0x0000~0x01FF,因为数据RAM连接在PRU 子系统的SCR 上,所以子系统中的其它主模块也可以访问到这块空间,这段内存空间在另一个PRU 上的映射地址为0x2000~0x21FF。
位于数据空间的还有共用的中断控制器寄存器;PRU 控制/状态寄存器,有各自的地址空间。
表 2 PRUSS 本地数据空间内存映射表
1.3 全局地址空间映射
PRU 局部地址空间在系统全局地址空间映射端口为0x01C30000,如表3 所示,PRU 可以通过表2 的局部地址,也可以通过表3 的全局地址访问PRUSS 的数据空间,通过全局地址空间访问要经过系统SCR2,比通过局部地址空间访问要慢。PRUSS 外部主模块如ARM,DSP 等可通过全局地址空间访问PRU 资源。
表 3 PRUSS 全局空间内存映射表
2控制/状态寄存器
PRU0 的控制/状态寄存器地址位于0x00007000~0x000077FF,PRU1 的控制/状态寄存器地址位于0x00007800~0x00007FFF,寄存器列表如表4 所示,各寄存器的详细说明请参阅 [1] 。
表 4 PRU 控制/状态寄存器表
一周热门 更多>