工具/软件:TI-RTOS
大家好、
// OMAPL137BZKB3
我将 SysBIOS (仅 BIOS 模块)用于我的项目、并且我将在 L2 RAM 中运行固件 whtin (256k)。
几年后、我的项目变得相当大、不再适合 L2 RAM。
因此、由于我不使用 SYSBIOS 中的任务或任何特殊内容、我的解决方案是从我的项目中删除 SYSBIOS (给了我大约25k 的空间)。
到目前为止一切都正常、但我发现、由于某种原因、使用 SYSBIOS 时、存储器访问速度似乎更快。
我使用相同的代码制作了两个测试项目以弄清这一点(SYSBIOS/NoSysBios):
(我通过切换引脚并使用 oszi 读取它们来测试此情况)
void main (void) { // init 填充(与 SYSBIOS/NoSysBios 相同) // PLL 300MHz // SDRAM 16 MB (0xC7000000 - 0xC8000000)->使用相同的 EMIFB 配置 //... uint8 * pSdram; //仅使用 SDRAM (EMIFB)地址 pSdram =(uint8*) 0xC7FFFB00; //在 EMIFB 上写入 // SYSBIOS -> 54ns // NoSysBios -> 54ns *pSdram = 0; //读取/写入 EMIFB // SYSBIOS -> 54ns // NoSysBios -> 54ns *pSdram ^=*pSdram; //读取 EMIFB/写入 EMIFA // SYSBIOS -> 67ns // NoSysBios -> 242ns //??? *((volatile UINT8*) 0x60000301)=* pSdram; //在 EMIFA 上写入 // SYSBIOS -> 54ns // NoSysBios -> 54ns *((volatile UINT8*) 0x60000301)= 0; //读取/写入 EMIFA // SYSBIOS -> 320ns // NoSysBios -> 307ns *(volatile UINT8*) 0x60000301)^=*(volatile UINT8*) 0x60000301); }
当从 CCS 获取两个工程的寄存器转储时、配置是相同的。
此外、该 main.obj 的汇编器代码看起来完全相同。
有人知道这是什么原因吗?
此致、Tom