搜索
bottom↓
回复: 4

裸机下如何动态加载大容量的NAND到SDRAM

[复制链接]

出0入0汤圆

发表于 2012-10-18 09:47:24 | 显示全部楼层 |阅读模式
ARM9板子64MB  SDRAM;256MB NAND;
ADS裸机;
NAND中存放大量的图片文件,使用中先将图片文件加载到内存中,再根据实际需要显示把内存中的图片放入显存。
图片文件打算用VC写个BMP转BIN文件的小工具,输出包括1个.bin文件和.h文件,bin中图片连续存放,.h放的是每个图片的起始位置和长度。图片的命名从PIC1~PIC200这是预知的,方便程序调用。

若加载第50~100图片
首先释放上次申请的50个内存
根据图片文件大小重新动态申请50个内存,
程序调用

这个程序对NAND是只读的,不用理会坏块管理。

问题有:
C语言中的malloc和free函数是不是算法不好,会不会运行一段时间后有不确定的死机?有没有其它方法,UCOSII行么?
不会用Linux系统,对我整体的思路来说,有没有更好的解决方法。

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2012-10-18 10:09:30 | 显示全部楼层
如果所有图片大小差不多或者图片都不大的情况下,自己写内存管理就可以了呀,数组搞定。你有32M的内存还怕什么?

出0入0汤圆

发表于 2012-10-18 10:16:18 | 显示全部楼层
NAND操作都需要处理ECC,不管你是否只读。不明白你为什么不用处理坏块。

出0入0汤圆

 楼主| 发表于 2012-10-18 10:32:41 | 显示全部楼层
mangocity 发表于 2012-10-18 10:16
NAND操作都需要处理ECC,不管你是否只读。不明白你为什么不用处理坏块。

NAND读取函数有现成的,我还没有细读过。你的理解是对,应该需要有坏块标记判断。

回2楼每个图片大小都不一样,是无法预先确定的。
不过确实可以按数组方法来做,我申请数组时按最大图片来处理,浪费点内存。

出0入0汤圆

发表于 2012-10-18 10:38:51 | 显示全部楼层
不管哪个libc,malloc/free的算法都是好的。绝对不会运行一段时间死机。嵌入式平台,出于内存碎片考虑还是少用 malloc/free 吧。
频繁申请50个图片内存,不会有问题。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 15:35

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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