ram空间超的解析
来源:互联网 发布:如何关闭udp端口 编辑:程序博客网 时间:2024/06/06 05:26
错误:Error: L6221E: Execution region DYNAMIC_CACHEABLE_EXTSRAM_DEFAULT_CACHEABLE overlaps with Execution region CACHED_DUMMY_END.
意思是DYNAMIC_CACHEABLE_EXTSRAM_DEFAULT_CACHEABLE区域超到CACHED_DUMMY_END区域的空间了。
根据*.lis文件中的数据,显示如下:
0xf036a0e8
Execution Region DYNAMIC_CACHEABLE_EXTSRAM_DEFAULT_CACHEABLE (Base: 0xf036cbd8, Size: 0x00092e9c, Max: 0xffffffff, ABSOLUTE)
Base Addr
0xf036cbd8
0xf037c2d4
0xf03c7514
Execution Region CACHED_DUMMY_END (Base: 0xf03fc000, Size: 0x00000004, Max: 0xffffffff, ABSOLUTE)
Base Addr
0xf03fc000
分析:
DYNAMIC_CACHEABLE_EXTSRAM_DEFAULT_CACHEABLE区域
0xf03c7514 + 0x00038560 = 0xf03ffa74
CACHED_DUMMY_END区域
Base: 0xf03fc000
比较:0xf03ffa74 - 0xf03fc000 = 3a74
大概 超了 14.6KB空间大小
===========================================================================================
Execution region DYNAMIC_CACHEABLE_EXTSRAM_DEFAULT_CACHEABLE overlaps with Execution region CACHED_DUMMY_END
修改如下:
Med_mem.h
#define MED_EXT_MEM_SIZE sizeof(med_ext_mem_union)
改为:
#define MED_EXT_MEM_SIZE (sizeof(med_ext_mem_union)-1024*500)
=========================================================================
关于MTK几个MEM文件
1.Med_MEM.h
media内存大小文件,修改med_ext_mem_union可以增加media内存大小。
例:
把media内存加到1000K
typedef union
{
U8 testsize[1000*1024];
}med_ext_mem_union;
2.ScrMemMgr.h
例:
把media内存加到500K
typedef union
{
U8 testsize[500*1024];
}screen_asm_pool_union;
Screen 内存大小文件,修改screen_asm_pool_union可以增加screen内存大小。
===================================================================
mtk 中,一次申请太大的内存,然后从文件中读这么大块的数据到内存中出现异常
buff_len = file_length;
do
{
zkp_malloc((char **)&pBuff,(unsigned int)buff_len);
if (pBuff == NULL)
buff_len = buff_len/2;
}while(pBuff == NULL);
ret = FS_Seek(fh,offset, FS_FILE_BEGIN);
for(;total_written<len;)
{
left_size = len - total_written;
if (left_size < buff_len)
buff_len = left_size;
read_ret = FS_Read(fh,pBuff,buff_len,(U32*)&readed);
write_ret = FS_Write(out_fh, pBuff, buff_len, (U32*)&writeed);
LOG(_Info, "SplitDataFromFile buff_len:%d total_written:%d readed:%d writeed:%d read_ret:%d ", buff_len,total_written,readed,writeed, read_ret,);
total_written+=buff_len;
}
先尝试是否能申请到整个文件大小那么大的空间,如果可以,就一次性从文件中读这么大的数据到申请的空间中,再一次性写入新文件。
碰到了异常的现象,就是虽然那么大的内存(100多K的,500多K的)能申请到,但读出,写入共计5个文件整个耗时很长,差不多10多秒钟,而且写入文件的数据有问题,100多 K的文件,只有前面64K是真实的数据,后面都是0,500多K的文件,只有200多K是正确 的,后面是0.
改为一次申请50K,分多次读文件,写文件后,耗时变为3秒。文件数据正常。
- ram空间超的解析
- DSP28335中RAM空间不够的解决方法
- DSP28335中RAM空间不够的解决方法
- STM32如何查看Flash和RAM使用空间以及如何压缩RAM的使用空间
- 编译时RAM超了的简单解决办法
- PIC关于RAM空间变量的绝对定位及分配
- 一位超算中心管理人员的空间
- android设备的内存空间(RAM)总空间和可用空间大小的获取以及一些思考
- 内核,中断,死锁,RAM空间
- 内核,中断,死锁,RAM空间
- uboot跳转RAM空间问题
- 单片机内程序运行的时候ram空间是如何分配的?
- Error: Java heap space 堆空间没有足够的RAM用于Java
- STM32启动时RAM空间堆(Heap)和栈(stack)的分配
- XML名称空间的解析
- Python的命名空间解析
- 单口RAM、伪双口RAM、双口RAM与FIFO的区别
- 单口RAM、伪双口RAM、双口RAM与FIFO的区别
- 程序中调用cmd命令时,参数带有空格的解决方法
- 杭州部分IT公司
- Java - OPENWFE
- android键盘输出增加按键码
- Nginx简单防御CC攻击
- ram空间超的解析
- Linux系统防火墙防止DOS和DDOS攻击
- 几种开源工作流引擎的简单比较
- 一些Html5引擎
- Android 控件之ProgressBar进度条
- iphone属性的用法
- 游戏开发基础(五)
- 动态调用win32 dll
- 图片的大小调整