在看例程和Tim Love 写的文档时有几个疑问。1: 烧写在flash中的程序上电后是不是既可以部分搬移到RAM中运行又可以全部搬移到RAM中运行:?2:如果是这样的话,当使用FLASH_API的时候,是不是操作就不一样了呢?:3:上电后程序全部搬移到RAM里运行的时候还可以使用FLASH_API吗?
希望您能够点拨我的疑惑,非常感谢您百忙之中阅读和回答我的问题。
tanson tang:
回复 Eric Ma:
非常感谢您的耐心作答,帮助我解除了迷惑。还有一个问题请教您:
假设我把所有程序上电都搬移到RAM中运行,是不是ramfuncs段全都换成text段?
一些将函数映射到ramfuncs段的操作就不需要做了?
还有无论程序运行在flash里还是RAM 里当接到指令需要调用FLASH_API函数的时候都要将全局中断关掉?
再次致谢!
在看例程和Tim Love 写的文档时有几个疑问。1: 烧写在flash中的程序上电后是不是既可以部分搬移到RAM中运行又可以全部搬移到RAM中运行:?2:如果是这样的话,当使用FLASH_API的时候,是不是操作就不一样了呢?:3:上电后程序全部搬移到RAM里运行的时候还可以使用FLASH_API吗?
希望您能够点拨我的疑惑,非常感谢您百忙之中阅读和回答我的问题。
Eric Ma:
回复 tanson tang:
tanson,
假设我把所有程序上电都搬移到RAM中运行,是不是ramfuncs段全都换成text段?
一些将函数映射到ramfuncs段的操作就不需要做了?
你说的对,只要把.text段按照ramfuncs设置就可以把整个.text段也就是所有的代码都加载在flash,但是跑在RAM,但你要保证RAM的空间够用。
还有无论程序运行在flash里还是RAM 里当接到指令需要调用FLASH_API函数的时候都要将全局中断关掉?
在你调用FLASH API进行擦除,烧写的时候,我建议关掉全局中断,即禁止所有中断,等flash操作完再打开。当然,在FLASH API操作的过程中,有一个阶段是可以接收中断的,你需要读FLASH API的指导手册。但如没有特殊中断要求,还是关掉比较方便。
Eric
在看例程和Tim Love 写的文档时有几个疑问。1: 烧写在flash中的程序上电后是不是既可以部分搬移到RAM中运行又可以全部搬移到RAM中运行:?2:如果是这样的话,当使用FLASH_API的时候,是不是操作就不一样了呢?:3:上电后程序全部搬移到RAM里运行的时候还可以使用FLASH_API吗?
希望您能够点拨我的疑惑,非常感谢您百忙之中阅读和回答我的问题。
tanson tang:
回复 Eric Ma:
Hi,Eric
我还想请教一下,当连接仿真器的时候程序就是在RAM里运行的,那是不是说明把程序全部从FLASH搬移RAM的时候,RAM 的空间是够用的呢?
在看例程和Tim Love 写的文档时有几个疑问。1: 烧写在flash中的程序上电后是不是既可以部分搬移到RAM中运行又可以全部搬移到RAM中运行:?2:如果是这样的话,当使用FLASH_API的时候,是不是操作就不一样了呢?:3:上电后程序全部搬移到RAM里运行的时候还可以使用FLASH_API吗?
希望您能够点拨我的疑惑,非常感谢您百忙之中阅读和回答我的问题。
Eric Ma:
回复 tanson tang:
tanson
TI的许多例程确实都是运行在RAM中进行仿真,因为程序比较小,所以在RAM仿真没问题,但如果程序较大,超过RAM的存储范围,那就还是需要下载到flash中。
你看一下你工程编译后的.map文件,看一下其中的.text段有多大,RAM区域能不能cover过来,如果能,就可以。
Eric
在看例程和Tim Love 写的文档时有几个疑问。1: 烧写在flash中的程序上电后是不是既可以部分搬移到RAM中运行又可以全部搬移到RAM中运行:?2:如果是这样的话,当使用FLASH_API的时候,是不是操作就不一样了呢?:3:上电后程序全部搬移到RAM里运行的时候还可以使用FLASH_API吗?
希望您能够点拨我的疑惑,非常感谢您百忙之中阅读和回答我的问题。
tanson tang:
回复 Eric Ma:
Eric
非常感谢您的悉心指导,让我把这个问题理解透彻了。
thanks
在看例程和Tim Love 写的文档时有几个疑问。1: 烧写在flash中的程序上电后是不是既可以部分搬移到RAM中运行又可以全部搬移到RAM中运行:?2:如果是这样的话,当使用FLASH_API的时候,是不是操作就不一样了呢?:3:上电后程序全部搬移到RAM里运行的时候还可以使用FLASH_API吗?
希望您能够点拨我的疑惑,非常感谢您百忙之中阅读和回答我的问题。
wan zhang:
回复 Eric Ma:
怎么计算呢 ?如果是
.text 0 00008a02 00003e59
那么是 0x3e59 大小?
在看例程和Tim Love 写的文档时有几个疑问。1: 烧写在flash中的程序上电后是不是既可以部分搬移到RAM中运行又可以全部搬移到RAM中运行:?2:如果是这样的话,当使用FLASH_API的时候,是不是操作就不一样了呢?:3:上电后程序全部搬移到RAM里运行的时候还可以使用FLASH_API吗?
希望您能够点拨我的疑惑,非常感谢您百忙之中阅读和回答我的问题。
mike tanson:
回复 wan zhang:
嗯,是的
在看例程和Tim Love 写的文档时有几个疑问。1: 烧写在flash中的程序上电后是不是既可以部分搬移到RAM中运行又可以全部搬移到RAM中运行:?2:如果是这样的话,当使用FLASH_API的时候,是不是操作就不一样了呢?:3:上电后程序全部搬移到RAM里运行的时候还可以使用FLASH_API吗?
希望您能够点拨我的疑惑,非常感谢您百忙之中阅读和回答我的问题。
Eric Ma:
回复 wan zhang:
Wan
下图是.MAP文件的截图,可以从上面看到每个存储块的起始地址origin, 长度Length, 使用了多少used,还剩下多少unused.
那么关于代码段.text 0 00008a02是它的起始地址, 00003e59是它使用了多少个字。

TI中文支持网