你好,支持,
在使用DA 14580时,是否有可能通过将STACK区域和HEAP区域移动到Retension区域来扩展主内存区域?
如果可以移动这些区域,请告诉我如何操作。
问候,
Jun-ichi
关键词:
设备:
你好,支持,
在使用DA 14580时,是否有可能通过将STACK区域和HEAP区域移动到Retension区域来扩展主内存区域?
如果可以移动这些区域,请告诉我如何操作。
问候,
Jun-ichi
嗨Jun-ichi托比,
保留内存区域已经被SDK使用(它不是一个仅用于用户变量的空空间),BLE堆已经被放置在RET ram中,以及其他必须放置在RET ram中的结构(交换内存)。所以你要移动哪个内存区域取决于你的应用程序和你的应用程序支持的特性(扩展,深度睡眠,连接数量,因为使用了不同的内存配置)。如果这是关于增加代码,您可以将其放置在580,请注意,你将需要一个完整的牌照的凯尔为了编译代码和也有一些技巧,可以让你增加内存使用的580,你将能够得到一些信息通过检查下面的帖子,我也再说一遍,修改取决于设备的睡眠配置。
https://support.dialog-semiconductor.com/how-build-program-code-larger-32kb
你也可以看看UM-B-011:用户手册- DA14580内存映射和分散文件。pdf在文档标签下的中断文档,SDK3文档部分。
由于MT_dialog
你好,支持,
看看我们的MAP文件,
我们目前使用的ROM代码从0x20000440到0x200089xx
我们使用的面积大约是34 kB,所以我们至少是在做更接近于论坛中介绍的方法(“how-build-program-code-larger-32kb”)。
目前,因为我们不使用深度睡眠模式,我们认为所有的RAM区域都可以毫无问题地使用。
我认为可用面积在下面。
20000440 - 200097 - ff 37.8 kB
80000 - 81FFF 8kb
82000 - 82FFF 4 kB
我认为以上是所有的RAM。
目前,HEAP和STACK是为以下内容保留的。
第256节boot_vectors. HEAP 0x20009080o(堆)
STACK 0x20009200 Section 1536 boot_vectors. sho(栈)
所以我在考虑以下事情。
①如果这些区域(HEAP和/或STACK)可以放置在80000-82FFF之间,以上256 + 1536区域可以作为代码区域使用。
②如果我们可以进一步使用82000-82 FFF区域作为CODE区域,我们认为CODE大小将会进一步增加,并以42kb为上限。
有什么办法使①和/或②成为可能吗?
如果有几种方法,你能教一下吗?
最好的问候,
Jun-ichi
嗨Jun-ichi托比,
保留的内存空间不是一个空的空间或使用只有你想保留的数据要深度睡眠时,保留的内存区域位于BLE使用的堆芯(环境、数据库和消息堆),也是它的一部分使用的伊势ROM代码,最后,保留的存储区域也被交换存储器(用于hw和sw之间的通信的存储区域)所使用。所以你不能把系统的STACK和HEAP放在那个区域,即使你这样做了,也不意味着整个系统都在你的支配下,因为在sysram上,除了用户代码空间之外,还有额外的空间需要分配,而且在内存案例23中,这是SDK的默认设置,连续的sysram内存大约是38K而不是42K。一般来说,有一些方法可以将可以下载的代码扩展到580,但这取决于您想要实现的应用程序和他的需求,尽管不可能达到42KB的用户代码。
除了我已经提到的链接我已经发布了我想一个人可以改变的EM映射内存的情况下继续23例7和创建一个内存空间面积42 k(你不会可以使用一切因为你需要分配空间负荷地区LR_IROM5之前),然后你将不得不相应地调整所有的执行区域,但是没有一步一步的指导方针或例子来说明如何做到这一点。
由于MT_dialog
你好,俊一,我们也有DA14585,现在是内存的两倍…引脚与DA14580。
BR JE_Dialog