微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 在晶心平台运行具 OSC 的 FreeRTOS

在晶心平台运行具 OSC 的 FreeRTOS

时间:01-08 来源: 点击:

晶心科技设计 IP 的目的,是满足客户实际需求,提供低功耗高效率的产品 给客户,让客户可以做出极具竞争力的 SoC,达到客户与晶心科技双赢的目的, 本文介绍具 OSC 的 FreeRTOS 产品,巧妙地与 AndesCore?结合,客户导入产品 后,具竞争力与实用性,本文的目的是期望能够让更多的读者清楚这个产品的特 性与优势进而使用此产品。

某些电子产品的应用是不同的时间需要运行不同的功能,这时需要大空间的 ROM  与  RAM  来存放在运行时会用到的各式各样的功能。因为 CPU 同时间只 会运行一种功能。所以在务实与经济的考虑下可以使用 overlay 的方式来满足此 类型产品的需求,将大幅降低 RAM 空间的使用,让硬件成本降低,使得产品竞 争力大大的提升。达成 overlay 的方式有两种,纯软件 overlay 与硬件加速  overlay。 纯软件的 overlay 不需增加硬件,但软件工程师写程序时需自己配置 functions 摆 放的位置,容易出错;呼叫 functions 时需要经过额外的处理,降低程序效能。 因此纯软件的方法多用于只需偶尔更换 overlay 的应用。例如 audio player,一条 歌播完,下一条开始前,才需要检查是否要用不同 decoder。我们有另一篇文章 针对软件 overlay 做介绍,本文不多加探讨。

硬件加速的  overlay  使用少许硬 件 , gate  count  <  2K  (OSC,  Overlay  SRAM Controller),提供软件透明的 overlay 处理。软件工程师写程序时,可以假设有一 个很大的连续程序空间,完全不需配置 functions 摆放的位置,这大大增加开发 程序的效率;同时,呼叫 functions 时完全没有任何纯软件方式的 overhead。上 述之 OSC 优点可以符合客户这类的需求,如果客户系统复杂,要做的事比较多, 需要用到多任务(Multi-tasking),则晶心科技「支援 OSC 的 FreeRTOS 产品」 就是最佳解方案。

1. Andes OSC  工作原理

先设定AndesCore? NCEOSC100 IP中寄存器,再与运行软件做整合搭配, 即可执行OSC的功能。

1.1 设定 OSC IP 的寄存器与动作解说

■   OSC Control Register, OSCCTRL (+0x00)

■   OVL_SZ: 3’h4 (16KB) RO/WI

■   OVL_VALID: 0

■   Fixed Region Size Register, OVLFS (+0x04)

■   OVL_FSZ: 8’h18 (96KB)    RW

■   Overlay Region Base Register, OVLBASE (+0x08)

■   Overlay Region End Register, OVLEND (+0x0C)

在OSC设计中SRAM分为两个区域,一个是”fixed region” ,另一个是 “overlay region”,fixed region  为低地址的  SRAM  ,其大小由OVLFS  寄存器设 定。  overlay region  是一个动态的区域,其地址由OVLBASE寄存器设定,大小 由  OVL_SZ 设定。当CPU运行时存取地址落在寄存器  OVLBASE与OVLEND之 间时OSC将自动转址到SRAM的overlay region内,如图1所示。

因应实际需求设定多个Overlay  区域,当发 生  ”Overlay  Miss”  时 ,经由 Overlay Exception的机制与软件的搭配,可以将storage 中的  overlay   page N  复 制到 SRAM 中的Overlay Region,如图1所示。关于overlay page 置换的工作原 理将于下两个章节中做说明。

图 1. Overlay 范例说明

CPU运行时存取地址不在fixed region  或是当时有效的  overlay page  时,会 发生 Overlay  Miss 。当 Overlay  Miss  发 生时 OSC 会产 生 illegal  instruction (32’hcoddcodd)造成general exception。因为也有其他原因会产生general exception, 如何区分出overlay miss  与其他general exception,将于下个章节说明。

1.2 Overlay Exception 侦测

当进入  general  exception  时可透过软件检验下列程序来判断是否为overlay miss:

Step 1 如果  interrupt level  已经到达最大值  (PSW.INTL == Max INTL)  ,这是  fetal error 不是overlay miss。

Step 2 必须是ITYPE.EYPE==1,才有机会是overlay miss。

Step 3  检查IPC值,如果是落在fixed region  或是当时有效的  overlay page 时 这是真 正的  illegal  exception  case.  如果 不 是在这 两个 区域 则是 overlay miss。

经过前面3步骤验证,如果确定是overlay miss  ,则可进行Overlay exception handling 的动作。

1.3 执行

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top