首页 » 软件开发 » 加快基于Flash的嵌入式应用的三大步骤(功能步骤执行区域指定)

加快基于Flash的嵌入式应用的三大步骤(功能步骤执行区域指定)

南宫静远 2024-07-23 17:12:47 0

扫一扫用手机浏览

文章目录 [+]

为了从RAM执行一项功能,开发人员通常需要遵循三个步骤,包括:

1.在功能链接器中创建RAM区域

2.指定哪些功能应储存在RAM

加快基于Flash的嵌入式应用的三大步骤(功能步骤执行区域指定) 软件开发
(图片来自网络侵删)

3.在启动时将这些功能复制到RAM

让我们详细探讨一下这个过程。

步骤 1:在功能链接器中创建RAM区域

每个编译程序都使用不同的语法来定义MCU内的储存区域。
对于本文的示例,我们将使用基于GCC的Code Composer Studio以及与TI C2000系列一起使用的语法,我相信它可以提供一个很好的例子。

当我们修改链接器档以包含将从RAM执行的功能时,需要创建一个内存单元来指定功能将从哪里加载到RAM,以及将加载到RAM中哪个位置。

链接器文件将包含指定重要程序分配的区域,例如:

cinit

text

codestart

stack

constants

开发人员需要为其RAM功能创建一个区域,可以使用以下程序代码完成:

如你所见,这是在RAM中创建一个名为ramfuncs的区域。
RAM区域将储存在FLASH A扇区的功能加载,它被指定在RAM区RAML0中运行。
然后有一些定义用于指定RAM功能的开始和结束位置以及它们的大小。
这些值在步骤#3中就显出重要性了。

步骤 2:指定哪些功能应储存在RAM

一旦在链接器中创建了一个RAM区域来储存指定的功能,我们需要指定功能应该驻留其中的链接器。
最常用于执行此操作的方法是使用#pragma。
通常,我们应该尽量避免在程序代码中使用#pragma,因为它是依赖于编译程序的。
这意味着如果编译程序发生改变,开发人员很可能就必须修改#pragma行。
对于我们要达到的目的,这没关系,因为我们无论如何都必须修改一个新的链接器档,我们需要找出正确的语法来指定如何将一个功能放入内存区域。

通常从RAM执行的一组通用功能是与存取和控制Flash相关的功能。
原因是当我们想要写入或擦除Flash时,大多数MCU都不允许同时执行Flash程序代码!
因此,无论如何我们需要将这些功能放入RAM中。
我们可以使用类似如下的程序代码将Flash_Init等功能放入RAM区域:

你可以从这一语句中看到我们正在使用自定义编译程序标识CODE_SECTION来指定Flash_Init功能应放入链接器中的ramfuncs区域。
该语句通常应该直接放在功能定义的上方,以提示任何操作该功能的开发人员要将它放到RAM中。
(这也使我们更容易找到它,如果我们认为该功能不需要放在RAM中的话)。

步骤 3:在启动时将功能复制到RAM

该过程的最后一步是确保在微控制器启动期间将我们想要在RAM中执行的功能真正被复制到RAM中。
最简单的方法是使用memcpy。
我通常在配置系统频率和中断向量表之后执行这一复制操作,但要在初始化板载外围和应用程序代码之前。
我在步骤#1中提到过,我们定义的几个变量会在以后派上用场。
它们是RamfuncsRunStart、RamfuncsLoadStart和RamfuncsLoadSize。
我们将使用memcpy和这些变量将功能复制到RAM中,按照以下语句:

就这么简单。
完成后,开发人员只需简单调用功能,就像通常那样,该功能就可以在RAM中执行。

总结

总之,当开发人员从Flash执行应用程序代码时,他们可以将这些功能复制到RAM中,以加速执行程序代码的关键部份。
从RAM执行一个功能将透过消除可能与从Flash存取指令相关的任何等待状态来提高执行速度。
这种额外的提升可确保关键功能以尽可能快的速度执行。
正如我们所看到的,一旦你操作一两次后,就会发现将功能加载到RAM中并执行其实非常简单。

- END -

往期精彩

标签:

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读3 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0