关于6748的内存空间问题 - TMS320C6748 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9664|回复: 13
打印 上一主题 下一主题

关于6748的内存空间问题

[复制链接]

7

主题

26

帖子

112

积分

注册会员

Rank: 2

积分
112
跳转到指定楼层
楼主
发表于 2016-1-12 10:27:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
众所周知,6748的片内RAM有256K+128K。
假如我有一个300K大小的,对运算速率要求非常高的程序(不能放DDR运行),怎样才能把它全部装入片内并能够正常运行呢?(为什么我自己感觉都不可能实现)
L2RAM和SHRAM的地址都不是连续的……怎样才能最为充分的利用这384KRAM呢?
求大神探讨一下~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
推荐
发表于 2016-1-13 09:14:28 | 只看该作者
Lying 发表于 2016-1-12 16:26
您说的预编译指令分配,是指通过cmd文件,将不同的初始化段放在不同的位置上么? ...



用这两条预编译指令 可以精确为代码为数据分配内存 当然需要配合 CMD 文件使用

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 1 反对 0

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2016-1-12 11:53:01 | 只看该作者
很容易吧 除了一些需要内存对齐的不好搞
一般都可以通过 预编译指令分配
回复 支持 反对

使用道具 举报

7

主题

26

帖子

112

积分

注册会员

Rank: 2

积分
112
板凳
 楼主| 发表于 2016-1-12 16:26:44 | 只看该作者
希望缄默 发表于 2016-1-12 11:53
很容易吧 除了一些需要内存对齐的不好搞
一般都可以通过 预编译指令分配

您说的预编译指令分配,是指通过cmd文件,将不同的初始化段放在不同的位置上么?

点评

[attachimg]581[/attachimg][attachimg]582[/attachimg] 用这两条预编译指令 可以精确为代码为数据分配内存 当然需要配合 CMD 文件使用  详情 回复 发表于 2016-1-13 09:14
回复 支持 反对

使用道具 举报

7

主题

26

帖子

112

积分

注册会员

Rank: 2

积分
112
5#
 楼主| 发表于 2016-1-13 09:18:54 | 只看该作者
希望缄默 发表于 2016-1-13 09:14
用这两条预编译指令 可以精确为代码为数据分配内存 当然需要配合 CMD 文件使用
...

非常感谢!之前一直只用data_section,还没用过code_section,这就去试一下!

点评

还可以将 L1 配置成 RAM 使用 CPU 只有在读取 L1 的时候是 0 延迟的 L1 与 CPU 同频率运行  详情 回复 发表于 2016-1-13 09:20
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
6#
发表于 2016-1-13 09:20:18 | 只看该作者
Lying 发表于 2016-1-13 09:18
非常感谢!之前一直只用data_section,还没用过code_section,这就去试一下!

还可以将 L1 配置成 RAM 使用
CPU 只有在读取 L1 的时候是 0 延迟的 L1 与 CPU 同频率运行
回复 支持 反对

使用道具 举报

7

主题

26

帖子

112

积分

注册会员

Rank: 2

积分
112
7#
 楼主| 发表于 2016-1-13 16:26:58 | 只看该作者
希望缄默 发表于 2016-1-13 09:20
还可以将 L1 配置成 RAM 使用
CPU 只有在读取 L1 的时候是 0 延迟的 L1 与 CPU 同频率运行 ...

我将时钟初始化函数PLL0和PLL1直接放在了SHDSPL1PRAM之中,将亮灯函数放在了SHDSPL2RAM之中,流水灯正常工作。
看来,32KB的L1P似乎是可以直接放程序的。
L1的32K全用来装载程序,不留缓存的话,这样用对整个系统不会有影响么?

点评

你这个验证方法貌似不严谨 不能证明 L1 在启动后默认被配置为缓存的 一般情况下 需要你在用户程序中将它配置为内存  详情 回复 发表于 2016-1-13 17:18
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
8#
发表于 2016-1-13 17:18:18 | 只看该作者
Lying 发表于 2016-1-13 16:26
我将时钟初始化函数PLL0和PLL1直接放在了SHDSPL1PRAM之中,将亮灯函数放在了SHDSPL2RAM之中,流水灯正常 ...

你这个验证方法貌似不严谨 不能证明

L1 在启动后默认被配置为缓存的
一般情况下 需要你在用户程序中将它配置为内存
回复 支持 反对

使用道具 举报

7

主题

26

帖子

112

积分

注册会员

Rank: 2

积分
112
9#
 楼主| 发表于 2016-1-13 18:08:12 | 只看该作者
本帖最后由 Lying 于 2016-1-13 21:28 编辑
希望缄默 发表于 2016-1-13 17:18
你这个验证方法貌似不严谨 不能证明

L1 在启动后默认被配置为缓存的

看到了,通过L1PCFG寄存器的配置可以改变CacheSize。
回复 支持 反对

使用道具 举报

7

主题

26

帖子

112

积分

注册会员

Rank: 2

积分
112
10#
 楼主| 发表于 2016-1-13 21:24:53 | 只看该作者
希望缄默 发表于 2016-1-13 17:18
你这个验证方法貌似不严谨 不能证明

L1 在启动后默认被配置为缓存的

但是如果减小缓存空间的话,按照机组的原理,缓存变小,程序的运行速度会慢吧!

点评

那你还是把数据放在 DDR2 吧 然后把 L1 L2 全部配置成缓存  详情 回复 发表于 2016-1-14 09:13
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2024-5-6 05:38 , Processed in 0.072909 second(s), 32 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表