您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> 关于对BF53X系列的内部L1  SRAM的大小和起始... 
本帖共有635个阅读者
发表帖子 发表投票 回复主题
关于对BF53X系列的内部L1 SRAM的大小和起始地址的疑问
piliyouke88(论坛新手)
piliyouke88
头衔:社区公民
帮派:无帮无派
帖数:8
金钱:216
积分:12
注册时间:2015/8/14
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
关于对BF53X系列的内部L1 SRAM的大小和起始地址的疑问
在论坛的其他帖子上面也看到了,说是BF531,532,533三个系列都是一样的,唯有内部的L1大小不一样,在建立工程的时候统一建立533的工程,用来跑531或者532的芯片都可以,只要内部的L1的使用空间不要超过芯片的特特定容量就可以了,那么问题来了:

1.因为531,532,533虽然内核一样,但是L1的SRAM起始地址不一样,生成的LDF都是以533工程建立的,那么在LDF中指定的其实地址肯定也是以533芯片为依据的,这样的话,编译好的程序下载到532或者531上也能运行这是为什么呢。LDF中已经知道了L1的运行地址空间了。到532或者531上L1的起始地址肯定不一样了。此时程序为什么能正常运行呢。

2.看芯片手册,截图如下,内存分布,有
L1 Instruction SRAM/Cache
L1 Instruction SRAM
L1 Data SRAM/Cache
L1 Data SRAM
L1 Scratchpad
L3 Boot ROM
这几个L1分别都有何区别呢?按照我的理解应该都是内部的RAM。为什么要区分Instruction 和Data呢,还区分Cache

3.我统一建立一个533的工程,然后下载到532或者531上,是不是只需要关心,我的代码的L1的实际大小不超过芯片的总的实际L1大小L1 Instruction SRAM/Cache,
L1 Instruction SRAM,L1 Data SRAM/Cache,L1 Data SRAM,L1 Scratchpad,L3 Boot ROM的总和),就可以了。没必要关心各个芯片的L1的起始地址不一样?

上传的图片
  20158179212750.png [ 37.04 KB 446×437 ] (缩略时请点击查看原图)

 


4.再补充一个疑问:为什么我的代码里面丝毫没有用到任何与SDRAM相关的东西,也没有定义函数或者变量放在SDRAM中,而我在生成LDR文件下载到FLASH中之后,板子依然不能启动,非得要加一个init_code.dxe文件才行,必须初始化SDRAM?假如我用到SDRAM了,那么理所应当要初始化,现在我没用到,也需要初始化,就比较疑惑了。


「该帖子被 piliyouke88 在 2015-08-17 09:24:28 编辑过」

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2015/8/17 9:21:45
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5195
金钱:34806
积分:6378
注册时间:2011/6/7
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
我回答第1跟第3个吧,你就把531,532,533都当成是533,531跟532就当是印错了丝印,芯片厂家大型号区分是有大差异的,而大型号下的细微区分这种事情,接口类还能做个开关,如片内SRAM这种更细微的小猫腻,讲深了就没意思了。

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2015/8/17 9:31:36
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5195
金钱:34806
积分:6378
注册时间:2011/6/7
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
第二个问题,533的datasheet里第四页是这么说的:

Internal (On-Chip) Memory

The processors have three blocks of on-chip memory that provide high bandwidth access to the core.

The first block is the L1 instruction memory, consisting of up to 80K bytes SRAM, of which 16K bytes can be configured as a four way set-associative cache. This memory is accessed at full processor speed.

The second on-chip memory block is the L1 data memory, consisting of one or two banks of up to 32K bytes. The memory banks are configurable, offering both cache and SRAM functionality. This memory block is accessed at full processor speed.

The third memory block is a 4K byte scratchpad SRAM, which runs at the same speed as the L1 memories, but is only accessible as data SRAM and cannot be configured as cache memory.

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2015/8/17 10:05:04
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
1. 531~533 实际就是一个核,资料中BootRoom起始地址的确不同,但应用中你就全当533吧,不会有问题。为什么我也不清楚。
2.指令Sram是存放执行的代码的。数据Sram是存放代码中的数组或者变量的。cache是用来提高代码运行效率,预存指令的。bootroom是固化在芯片上的一段代码,用来加载你flash的文件到指定内存运行的。
3.当成533不会有问题。L1问题通常VDSP会自动帮你解决的。
4.你的代码可能在工程选项中勾选了SDRAM的配置。系统已经把一部分代码自动分配到SDRAM中运行了。即使你的代码中没有初始化SDRAM。但在XML文件中已经初始化完成了。在生成LDR文件时,已经有一部分代码被标记为SDRAM中运行导致的。

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2015/9/9 22:43:25
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159164 Call, 1 Queries, Processed in 0.013672 second(s),