首先确定你的软件是在互斥信号初始化的位置,在以下几个位置,将会报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. sqlserver 必须声明标量变量 "***"。

    发现在navicat premium上执行报这个异常,在sqlserver上不报,想到我之前的文章用存储过程时mysql里有个分割符,去掉“:”果然执行成功. DECLARE @countlmc IN ...

  2. R学习笔记-安装R和RStudio,注意RStudio的版本需要与操作系统版本匹配

    1.安装步骤:先安装R,再安装RStudio RStudio是R的集成开发工具,本身不带R环境. 2.从当前R的官网和RStudio下载的R和RStudio的版本分别为: A .For Windows ...

  3. vue elementui form表单验证

    最近我们公司将前端框架由easyui 改为 vue+elementui .自学vue两周 就开始了爬坑之路.业余时间给大家分享一下心得,技术新手加上第一次分享(小激动),有什么不足的地方欢迎大家指正, ...

  4. 第七章 资源在Windows编程中的应用 P157 7-8

    资源在基于SDK的程序设计中的应用实验 一.实验目的 1.掌握各种资源的应用及资源应用的程序设计方法.   二.实验内容及步骤 实验任务 1.熟悉菜单资源的创建过程: 2.熟悉位图资源的创建: 3.熟 ...

  5. NLTK和Stanford NLP两个工具的安装配置

    这里安装的是两个自然语言处理工具,NLTK和Stanford NLP. 声明:笔者操作系统是Windows10,理论上Windows都可以: 版本号:NLTK 3.2 Stanford NLP 3.6 ...

  6. webform调用windows服务

    准备工作: .电脑->管理->本地用户和组->组->Administrator双击->隶属->添加Network service->确定 .启动windows ...

  7. RedHat6使用centos6的yum源

    更换源 cd /etc/yum.repos.d/ wget http://mirrors.163.com/.help/CentOS6-Base-163.repo vi CentOS6-Base-.re ...

  8. 阿里云OSS-js分片上传

    使用 aliyun-oss-sdk-4.4.4.min.js 方式一 客户端授权 https://help.aliyun.com/document_detail/32069.html 通过new OS ...

  9. Google Tango SDK下载

    Tango SDK files谷歌Tango开发包 The Tango SDK is under active development; please keep this in mind as you ...

  10. window.location 对象

    http://www.home.com:8080/windows/location/page.html?ver=1.0&id=timlq#love 1, window.location.hre ...