|
本帖最后由 zdzdzddd 于 2017-7-28 08:49 编辑
外扩flash代码空间对所有单片机本不是问题,问题是若还想用串口载入数据就对单片机有要求了。按常规串口载入得开辟2个很大的缓冲数组(如256字节)分时倒换数据,内存开销忒大,以至于俺这里“在用量”极大的STC的256SRAM档芯片都不能运行,太不公平了。因此俺决意要尝试突破、搞掂维权的科学实践。 不料俺的机缘和运气都很好,刚好有现成的实验板、网购的一片8M字节flashMX25L6404只要1块钱、板上刚好有个8pin时钟芯片位置刚好安放8M字节的flash芯片,供电引脚刚好一致、就近改接STC芯片的SPI口方便极了、网络烧友刚好又有许多切合俺参考的现成代码。几经小试惊奇如意之感受真是大大的。在这先不待显掰,只说说切题要点。
俺先用2K内存的IAP15F2K61实验,使用STC下载软件附带的“串口助手”就能够方便的载入多达8M字节得数据了。原来STC芯片最大也只61K字节代码空间,塞进一幅128X160彩图有40.96K字节要占去STC芯片的大半空间,曾叫俺心痛不已。而现在放200幅图片不在话下。俺常用的40X72大点阵仪表数字符再多都不会发愁了。
可是,若改用1K内存的芯片就尽出问题,不能稳定工作了。在256字节内存的RIC15W154实验板上竟然还无法启动,进不去界面。都这内存开销给闹的。不过俺还是得尝试变通,笃定要让广大的低内存单片机都可幸享受这flash“优厚的福利”。
最后俺尝试的两招式终于有了成效。1是设置程序为“按键加电”的方式进入flash的串口转载状态,这样就有条件独享单片机的有限资源了。2是把原来的两个缓冲区数组Copybuf[250]和 Uartbuf[250]分别调降为[32],其他散碎数组尽量精简复用。如此,不得已繁琐了一点数据处理过程、牺牲了一点运行速度,好歹叫程序能够顺利运行了、串口数据能够由此成功载入了。
有图为证:
1块钱的MX25L6406flash,2块8的IRC15W415单片机(价廉功能贱SRAM只有512字节、程序空间只14K字节)。
3块钱的128X160彩屏MT1D66B(TL1771方案)这屏便宜是因为只有并口要消费很多I\O,又是2串LED背光要过6V才能起辉,用起来麻烦。
现成的板子,8pin时钟芯片位置正好安放8M的flash贴片,就近改连STC的SPI口方便极了。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|