针对外挂程序SPI Flash方案的切bank机制

来源:互联网 发布:ipv4 无网络访问权限 编辑:程序博客网 时间:2024/06/16 12:59

由于主控内部没有集成足够的Flash空间 来存储代码。因此就需要利用 SPI总线 来外挂 Flash 作为代码存储区。

这就需要有一个bank的机制。对代码进行分bank 处理,分开存储。

对紧密相关的函数代码,放在同一个bank区之中。

在程序运行到时,才将整个bank区的代码拷贝到 主控内部RAM中,缓存运行。

由于这样复杂的机制存在,所以不对代码进行很好的分bank处理,在以后的程序运行中,经常会导致很多奇奇怪怪的现象存在。

一般共同使用到的公共函数,要放在common区中,作为永久贮存。

其他函数则 分模块化 编程,代码连接时,分bank进行连接。

每个函数下调用的到的函数,都要存放在同一个bank区之中,否则会造成,在同一个函数内,频繁切换bank,轻则程序效率低下,重则程序瘫痪。

每一个bank区的大小,要与 主控内部RAM的空间对应,切记不可超过RAM的大小。

如果函数使用到一个很大的文件时,需要注意到此文件的存放位置,因为很有可能在读取此文件的过程中,又产生了切bank的行为,因为DMA的存在。


0 0
原创粉丝点击