首先确定你的软件是在互斥信号初始化的位置,在以下几个位置,将会报Hard Fault 错误:

(1).os_sys_init_user 用户线程创建之前

(2).os_tsk_create_user之后

规范写法:

/*
*********************************************************************************************************
* 函 数 名: main
* 功能说明: 标准c程序入口。
* 形 参: 无
* 返 回 值: 无
*********************************************************************************************************
*/
int main (void)
{ /* 初始化外设 */
bsp_Init(); /* 创建启动任务 */
os_sys_init_user (AppTaskStart, /* 任务函数 */
, /* 任务优先级 */
&AppTaskStartStk, /* 任务栈 */
sizeof(AppTaskStartStk)); /* 任务栈大小,单位字节数 */
while();
} /*
*********************************************************************************************************
* 函 数 名: AppTaskStart
* 功能说明: 启动任务,也就是最高优先级任务。
* 形 参: 无
* 返 回 值: 无
* 优 先 级: 4
*********************************************************************************************************
*/
__task void AppTaskStart(void)
{ /* 先创建任务间通信机制,防止任务先创建后,直接就可以使用 */
AppObjCreate(); AppTaskCreate(); while()
{
os_dly_wait();
}
} /*
*********************************************************************************************************
* 函 数 名: AppObjCreate
* 功能说明: 创建任务通信机制
* 形 参: 无
* 返 回 值: 无
*********************************************************************************************************
*/
static void AppObjCreate (void)
{
// /* 创建信号量计数值是0, 用于任务同步 */
// os_sem_init (&semaphore, 0);
//
// /* 创建消息邮箱 */
// os_mbx_init (&mailbox, sizeof(mailbox)); link_mul_init(); } /*
*********************************************************************************************************
* 函 数 名: AppTaskCreate
* 功能说明: 创建应用任务
* 形 参: 无
* 返 回 值: 无
*********************************************************************************************************
*/
static void AppTaskCreate (void)
{
HandleTaskModbus = os_tsk_create_user(AppTaskModbus, /* 任务函数 */
, /* 任务优先级 */
&AppTaskModbusStk, /* 任务栈 */
sizeof(AppTaskModbusStk)); /* 任务栈大小,单位字节数 */ HandleTaskLED = os_tsk_create_user(AppTaskLED, /* 任务函数 */
, /* 任务优先级 */
&AppTaskLEDStk, /* 任务栈 */
sizeof(AppTaskLEDStk)); /* 任务栈大小,单位字节数 */ HandleTaskMsgPro = os_tsk_create_user(AppTaskMsgPro, /* 任务函数 */
, /* 任务优先级 */
&AppTaskMsgProStk, /* 任务栈 */
sizeof(AppTaskMsgProStk)); /* 任务栈大小,单位字节数 */
HandleTaskPrintTest = os_tsk_create_user(AppTaskPrintfTest, /* 任务函数 */
, /* 任务优先级 */
&AppTaskPrintfTestStk, /* 任务栈 */
sizeof(AppTaskPrintfTestStk)); /* 任务栈大小,单位字节数 */
// HandleTaskTCPTimer = os_tsk_create_user(AppTaskTCPTimer, /* 任务函数 */
// 5, /* 任务优先级 */
// &AppTaskTCPStk, /* 任务栈 */
// sizeof(AppTaskTCPStk)); /* 任务栈大小,单位字节数 */ HandleTaskReadAD7327 = os_tsk_create_user(AppTaskReadAD7327, /* 任务函数 */
, /* 任务优先级 */
&AppTaskReadAD7327Stk, /* 任务栈 */
sizeof(AppTaskReadAD7327Stk)); /* 任务栈大小,单位字节数 */ HandleTaskDeviceLink = os_tsk_create_user(AppTaskDeviceLink, /* 任务函数 */
, /* 任务优先级 */
&AppTaskDeviceLinkStk, /* 任务栈 */
sizeof(AppTaskDeviceLinkStk)); /* 任务栈大小,单位字节数 */
HandleTaskCollectSensorData = os_tsk_create_user(AppTaskCollectSensorData, /* 任务函数 */
, /* 任务优先级 */
&AppTaskCollectSensorDataStk, /* 任务栈 */
sizeof(AppTaskCollectSensorDataStk)); /* 任务栈大小,单位字节数 */ HandleTaskScreenUpdate = os_tsk_create_user(AppTaskScreenUpdate, /* 任务函数 */
, /* 任务优先级 */
&AppTaskScreenUpdateStk, /* 任务栈 */
sizeof(AppTaskScreenUpdateStk)); /* 任务栈大小,单位字节数 */ HandleTaskLockLink = os_tsk_create_user(AppTaskLockLink, /* 任务函数 */
, /* 任务优先级 */
&AppTaskLockLinkStk, /* 任务栈 */
sizeof(AppTaskLockLinkStk)); /* 任务栈大小,单位字节数 */ }

Keil RTX使用 os_mut_init 报Hard Fault 错误解决记录的更多相关文章

  1. 错误解决记录------------rhel安装Mysql软件包依赖 mariadb组件

    错误解决记录------------软件包依赖 mariadb组件 错误信息: 错误:软件包:akonadi-mysql-1.9.2-4.el7.x86_64 (@anaconda) 需要:maria ...

  2. flex调用JS报安全沙箱错误解决办法

    flex调用JS方法弹窗时一般会报安全沙箱错误,只要将被调用的JS方法设置延时就可解决. function openKqQuery(){ window.showModalDialog("pa ...

  3. laravel 项目表单中有csrf_token,但一直报错419错误 解决redis连接错误:MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persi

    laravel 项目表单中有csrf_token,但一直报错419错误,因为项目中使用到Redis缓存,在强制关闭Redis后出现的问题,查询laravel.log文件查找相关问题 安装redis后在 ...

  4. EF6 CodeFirst连接MySql 报nvarchar('max')错误解决办法

    1.在DBContext类加标签[DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))] 2.在Nuget控制台输入u ...

  5. dbfread报错ValueError错误解决方法

    问题 我在用dbfread处理.dbf数据的时候出现了报错 ValueError("could not convert string to float: b'.'",) 然后查找. ...

  6. virtualbox 错误解决记录

    1,E_INVALIDARG (0x80070057),virtualbox中Cannot register the hard disk错误解决办法 virtualbox中加载已有的虚拟硬盘时出现Ca ...

  7. idea配置SOLServer错误解决记录

    1.错误信息:2019-03-26 13:32:41.205 ERROR 7828 --- [nio-8081-exec-1] c.alibaba.druid.filter.stat.StatFilt ...

  8. 命令行登录mysql报Segmentation fault错误是怎么回事

    ==========解决方法============在源码包里,编辑文件 cmd-line-utils/libedit/terminal.c把terminal_set方法中的 char buf[TC_ ...

  9. 连接IBM MQ原因码报2035的错误解决办法

    我们的系统使用了ibm mq,用户用来向国家局上报文件和接收文件,前几天用户说上报一直不成功.由于 开发这块程序的人已经辞职了,我觉定在我的机器部署一套,研究一下.我的思路: 在我的机器上安装mq,建 ...

随机推荐

  1. 配置ssh免密登录后,仍需要密码才能登陆其中某台机器

    提示:如果是三台机器A.B.C配置了ssh免密登录,从A和B上登录C需要密码,则需要修改C的配置 修改配置文件如下: sudo vi /etc/ssh/sshd_config #禁用root账户登录, ...

  2. Android 建立Menu选单&&onOptionsItemSelected (转)

    /** 当Menu有命令被选择时,会调用此方法 */ @Override public boolean onOptionsItemSelected(MenuItem item) { switch (i ...

  3. [Android开源项目] GitHub开源项目总结 (转)

    [Android开源项目] GitHub开源项目总结 GitHub开源项目android-styled-dialogs http://neast.cn/forum.php?mod=viewthread ...

  4. Android APK反编译详解(转)

    转自:http://blog.csdn.net/ithomer/article/details/6727581 这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代 ...

  5. 关于Url传递参数

    Url传递参数时,后台取值会直接取等号后面的内容,包括引号在内. 比如:   http://localhost:8080/user?name='admin' 这是错误的做法,后台获取到的参数是包括引号 ...

  6. 【Centos linux系统】命令行(静默)安装oracle 11gR2

    一.安装前准备 1.内存及swap要求 至于swap如何添加,后文将提到 1 2 grep MemTotal /proc/meminfo grep SwapTotal /proc/meminfo 2. ...

  7. (字符串 KMP)Blue Jeans -- POJ -- 3080:

    链接: http://poj.org/problem?id=3080 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=88230#probl ...

  8. user_mongo_in_a_docker_and_dump_database

    使用 mongo docker 镜像 使用 mongo 镜像是很方便的,直接使用官方镜像就好了,为了今后更方便使用,这里给出依据 restheart-docker 中的 docker-compose. ...

  9. AndroidStudio-Unable to save settings Failed to save settings. Please restart Android Studio

    Unable to save settings Failed to save settings. Please restart Android Studio 解决方法: 删除工程的.idea 然后在 ...

  10. AndroidStudio-Error Please select Android SDK

    这里是×错误信息: 点击运行提示,Error:Please select Android SDK: 网上说了很多解决办法都不靠谱,只有这种方式是可以解决的: 点击:Exit: 红框的感叹号!已经提示了 ...