硬汉嵌入式论坛

 找回密码
 立即注册
查看: 335|回复: 3
收起左侧

[ThreadX全家桶] ThreadX Module的MPU问题

[复制链接]
回帖奖励 72 个金币 回复本帖可获得 8 个金币奖励! 每人限 1 次

6

主题

16

回帖

34

积分

新手上路

积分
34
QQ
发表于 2023-12-13 14:22:37 | 显示全部楼层 |阅读模式
本帖最后由 yono 于 2023-12-13 15:13 编辑

使用threadX的Module,尝试使用共享内存始终有问题,问题如下
    在app中的 *(ULONG *)READWRITE_REGION = 0xABABABAB; 这句赋值时会触发错误处理,经查是加载module后的MPU配置有问题



因为我想用最新的threadX和Module,所以我是自己移植的一个threadX工程,最初参考的是官方的一个例子尝试,现在是参考硬汉大哥的这个第5期ThreadX视频教程:单片机动态APP加载MPU玩法,隔离应用和系统,APP死机了系统也不会挂(2022-05-15) - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! (armbbs.cn)
ModuleManager的内容和Module的内容,除了thread是自己移植的,其他都和硬汉大哥一致,也试过用硬汉大哥的BSP包做初始化,发现不是这个问题

安富莱的管理器MPU.png 这是硬汉大哥的ModuleManager加载Module后的MPU,和宏定义是一一对应的

我的管理器MPU.png 这是我的ModuleManager加载Module后的MPU,就莫名其妙,不一样

我的配置区域宏定义.png 这是我的ModuleManager的宏定义,和硬汉大哥一致(其实整个文件都是粘过来的

我的配置区域代码.png 我的ModuleManager的内存区域配置函数,也是没有返回错误的

在Module中使用*(ULONG *)READWRITE_REGION = 0xABABABAB;赋值,就会出错,消息队列传递都正常




找了一周多问题了,最终锁定在MPU配置上
汇编配置MPU.png 在进入模组运行前会在这里修改MPU配置,但是小弟实力有限,完全找不到这个数据从哪里来的,也就没法debug了,最终来球球诸位大佬指点










回复

使用道具 举报

6

主题

16

回帖

34

积分

新手上路

积分
34
QQ
 楼主| 发表于 2023-12-13 14:31:59 | 显示全部楼层
这是我的ModuleManager工程,MDK的工程在 src/5_PhysicalChip/STM32CubeMX/H7MXdemo/MDK-ARM
因为想借助STM32cubeMX配置,工程所在的路径有点过分复杂了。

H7_AZURE_Module_Manager_My.7z (15.43 MB, 下载次数: 2)




回复

使用道具 举报

6

主题

16

回帖

34

积分

新手上路

积分
34
QQ
 楼主| 发表于 2023-12-13 14:35:36 | 显示全部楼层

这是我的Module工程,为了避免不同threadX版本可能的冲突问题,这个也是自己移的threadX,不过硬汉大哥的ModuleManager可以载这个APP,我的就不行!!
MDK工程在WorkSpace/MDK-ARM下,这个没有stm32cubeMX的限制,自己做的结构就会规整一些


H7_AZURE_Module1_My.7z (93.29 KB, 下载次数: 4)
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106749
QQ
发表于 2023-12-13 19:08:50 | 显示全部楼层

回帖奖励 +8 个金币

1、直接在我的例子基础上修改成你自己的工程方式,然后重新移植个对比下,这个锁定问题方便些。
2、注意RAM空间,主工程别也使用了


12.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-4 05:34 , Processed in 0.172468 second(s), 30 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表