RAM 目标与多工程空间

嵌入式Linux

共 2300字,需浏览 5分钟

 ·

2023-08-17 09:13

马上就要过春节了,在这里提前祝各位新年快乐!有些读者应该注意到了,前几天更新的比较频繁(我一般是周更的),就是因为这是一个完整的知识点,所以想在过年前更新完成。而且在过年的时候也有很多事情要做,没有时间更新内容,所以算是提前更新了。还有就是这个知识点还是比较多,所以不是非常完整的,只作为了解性内容。还有 RAM 下载目标的内容还是比较多的,所以并没有很系统的讲解。另外这部分的目标也并没有完成,所以公众号提供的工程目标只有三个目标,不过应该够一般使用了。后期我会将这个工程完成的,到时候会在公众号说明,有需要的回复关键字即可获取。



别在意,我只是一条分割线



RAM 目标

我们都知道, FLASH 下载次数是有限制的,虽然对一个项目来说,一个芯片下载次数完全够项目的开发使用,但有的开发板会进行很多项目的测试功能,比如我就有一个开发板,将所有的 I/O 引脚都引出来了,很多功能我都可以通过杜邦线连接来进行测试,非常方便。但也正因为如此,所以几年下来可能会在这个开发板上烧写不知多少次,很可能某一天就把 FLASH 给烧坏了,这样一来芯片就没用了。你可能会说,不怕,我的焊工好,焊一个芯片分分钟的事情,但是你考虑焊盘的感受吗?焊盘经不起你多少次焊接可能就废了,而且也不是随时随地都有芯片和焊接工具给你焊接啊。所以最好的办法就是使用 RAM 下载功能。


RAM 下载最大的好处就是下载次数无限,所以你可以使劲尝试各种可能,直到成功为止,根本不必考虑烧写次数问题,但是也有缺点。


我们知道 STM32 分为 FLASH RAM 两部分空间,本来 RAM 专门用来存放数据的, FLASH 用来放代码和不变的数据,现在好了,所有的代码和数据都放在 RAM 中,而 RAM 的空间一般来说不是很大,所以一些大的项目是无法使用 RAM 的方法存储的,只能对一些小项目或者功能进行测试。而且原来分了两条总线对 FLASH RAM 进行分别访问(哈佛结构),效率高,现在只能通过一条总线(应该是一条总线吧,也可能还是有两条总线同时访问)访问一个目标 RAM ,效率可能下降。但这些缺点不是很明显,毕竟下载次数无限的诱惑力还是相当大的。所以有必要新增一个专门用来功能测试的目标,这样你就可以尽情的测试了!


和建立  FLASH 目标一样,不过不同的是现在以 FLASH 作为模板创建新的 RAM 目标,这是因为 FLASH 目标已经具有下载功能了。


具体如何建立 RAM 目标可以参考 RAM 下载这一小节内容。除了多了几个目标之外,其他设置都是类似的。但是因为这个笔记是很久之前写的(也可能是哪里摘抄的,不记得了),感觉写的不是很好,所以后期我会根据这个内容再重新整理,如果等不及的话的可以自行尝试。


需要注意一点的就是,因为所有的代码都是下载在 RAM 中的,所以不能使用复位按钮,因为一旦进行复位,那么程序就会跳转到 FLASH 区进行执行,导致无法再执行到 RAM 中的程序里面,所以暂时不能使用复位按钮。但是这个问题是可以解决的,后期我会在整理的 RAM 下载小节中介绍这个方法。


所以有了前面的基础,再建立一个 RAM 目标是很简单的事情。感兴趣的可以自行尝试,实在不行就等着我的笔记出炉吧。


多工程

多目标解决了同一个芯片下不同功能代码的问题,现在还有一个问题就是如何管理不同芯片下的代码呢?比如 STM32F1 STM32F4 单片机是两个不同工程,他们的关系不再是多目标的关系,而是不同工程的关系,又该如何呢?这个时候就需要使用多工程的功能进行管理了。


怎么做呢?


首先建立一个多工程空间:

1715718bc8e42386fd44d63d51f2f850.webp

                          

然后在不同工程文件夹下建立多工程空间:

9b1e333d7ea2b1ac661c9a3469a12068.webp


然后将你需要的工程加入到这个空间当中进行管理:

24e485ce2a3d3c3b6bb55950ebc9e5c5.webp


同理可以添加其它需要的工程。


然后选择你需要的当前工程:

0cdd85da9d976129e1def3614ada736b.webp


这样这个空间就建立好了:

15b41b946ba9d576a034364ed1528f7e.webp


当然你可以在工程上通过右键选择你需要的活动(当前)工程:

f3336f67019bdf6f48d5fdd6dec9a1eb.webp

通过这个方法你就可以随时切换你的活动工程了。


如果你想继续添加你的工程,可以通过以下方法管理你的多工程空间:

a2435874b5928b1db31c2fe5a6710436.webp

这样一来多工程空间就算介绍完毕了,通过这些知识应该能很好的管理你的代码了。


-THE END-





如果觉得对你有帮助,欢迎转发、点好看,就是对我最大的支持与鼓励。


大家好,我和韦东山老师的搞定寄存器计划在持续进行中

欢迎大家关注


最开始我在推荐韦东山老师的搞定寄存器计划...



52376e56055d0dd36a9a824ad9d1cf2c.webp

浏览 23
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报