我正在使用LPC2132 ARM芯片来开发程序。但是,我的程序已经超出了芯片上的空间。
如何将我的芯片连接到某种外部存储芯片以容纳其他可执行代码?这可能吗?如果没有,人们在芯片空间用尽时通常会做什么?
最佳答案
马克的答案很不错。一个问题-您是否缺少RAM或闪存,或两者都没有?解决方案/答案可能取决于...
几年前,我发现自己处于类似的情况(LPC2148的空间不足(闪存和RAM)不足。在引脚兼容的部件中,这是最大的闪存和最大的RAM。因此,不幸的是,“就像Mark所说的,选择了错误的芯片(实际上,要求和功能超出了芯片原本应做的工作……我敢肯定,没有其他人会经历过) ;-))
无论如何,我发现自己陷入了“字节之战”。这是我记得做的事情(请注意,我从客户那里继承了很多代码...)
伙计还有很多,但我必须参加 session 。我只记得是一次进步,一次数十和数百个字节,最终节省了一些可观的费用。我最终从闪存和RAM中恢复了大约20%,这足以完成该项目。我大概花了2个星期来清理这些东西,但是节省成本是值得的。
我将尝试返回并发布更多策略,但我现在不能。作为记录,我遇到过这样的情况,我必须在运行时根据需要(例如算法,表等)从串行闪存中将代码加载到RAM中和从其中加载代码,这太糟糕了。首先,尝试尽可能收紧当前代码。这也是一种智力上的练习,它迫使您深入了解并了解编译器的实际作用。
最后一点:在整个项目中编写良好的紧密代码,但是在必要时并在业务案例证明合理的情况下,最后进行这种优化。
关于memory - 如何从外部存储器运行ARM代码?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2624248/