您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> BF158F PPI 申请显存时为什么是char型?
本帖共有579个阅读者
发表帖子 发表投票 回复主题
BF158F PPI 申请显存时为什么是char型?
gaozl531(论坛新手)
gaozl531
头衔:社区公民
帮派:无帮无派
帖数:11
金钱:204
积分:16
注册时间:2013/4/17
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
BF158F PPI 申请显存时为什么是char型?

楼主您好!刚入手的BF518卡板,请教点问题:

1:在用到PPI时显示模式在565下,为什么申请的显示缓存是char型,不用int型啊?外部硬件SDRAM的地址线不是按16位的接法接线的吗,而且SDRAM也是16位位宽的啊!

2:用仿真机仿真时,程序是在开发板上的SDRAM里跑的吗?还是在什么地方跑的?

3:在用仿真机仿真时,在VDSP环境里有时点复位按钮,好像有时复位不了,是需要在什么地方设置吗?


这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2013/4/25 20:24:46
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
1. 在BF518上,int是32位的。因为使用DMA时,搬运数据的基本单位是byte,使用char行运算会比较灵活。你也可以用short型。你声明的数组类型与处理器总线宽度关系不大,处理器会根据你使用的情况来操作,并非声明char型,处理器就是8bit访问。
2. 当你编译代码后,会生成DXE文件,这个文件中,每个代码在哪个地方运行,都已经分配好了,默认是优先L1中运行,如果L1中放不下,而且代码又使用了LDF文件,处理器会自动将这部分代码放到SDRAM中运行,你也可以指定代码运行的位置。
3. 那个复位是软复位,仅仅是将配置的寄存器恢复初始值,对内存数据不会有作用。


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2013/4/26 1:22:44
gaozl531(论坛新手)
gaozl531
头衔:社区公民
帮派:无帮无派
帖数:11
金钱:204
积分:16
注册时间:2013/4/17
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

谢谢andy解答。

1:请再讲下BF518各种数据类型的位数,BF518的数据位数和我以前知道的不一样嘛!比如现在BF518 int型是32位,那char型是8位吗?还是16位(程序里看是8位奥)?那short型是多少位呢?等等!请andy帮我把各种数据类型的位数给讲下,或在什么资料里可以查询到。

2:PPI的例程里显示模式是565模式,也就是16位的数据,程序里显示缓冲申请的是char型,那 section("sdram0_bank1") unsigned char DisplayBuffer_565[272][1440]; 里的1440是按32位申请的啊?这是怎么回事呢?而其DMA从申请的显存里向PPI口搬送数据是设置的是16位的线宽搬送的,它又怎么和申请的显存对应起来呢?



「该帖子被 gaozl531 在 2013-04-26 10:27:16 编辑过」

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2013/4/26 9:14:50
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

1. 你编译一个工程,然后点VDSP的眼镜图标,把你的各种类型变量拖进去看一下。

2. [272][1440] 是按照RGB24位申请的空间。1440是每个像素点3个字节,每行480个,共需要1440个byte。DisplayBuffer_565[272][1440]; 实际上只需要[272][960]就够了,多出的每行的数据实际没有用到。

DMA搬运和你内存申请的类型没有关系,DMA都是以byte搬运的,16位就是每次搬运2个byte


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2013/4/26 18:09:29
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159163 Call, 1 Queries, Processed in 0.031250 second(s),