0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Harmony Configurator配置编程教程及试验

电子工程师 来源:网络整理 2018-02-01 03:59 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

首先下载官方的开发工具,包括MPLAB、XC32、Harmony,但是要想在MPLAB中创建Harmony的工程,得按照help_harmony_vol_I.pdf中的说明,先在MPLAB中安装harmony的plug-in。

1

接下来进入我们的主题——杀鸡就要用牛刀,点灯怎么用牛刀呢?那就把uCOS跑起来吧,在任务中去点灯!

原本的计划是拿Micrium官网PIC32的BSP包过来移植,但是简单地看了看Harmony的介绍文档之后,发现它竟然支持常用的几款RTOS,其中就有uCOS-III,随即决定用Harmony创建uCOS的工程。创建工程、配置系统时钟这两步和参考文章中的方法都一样,不罗嗦了;接下来开始就要自己配置Harmony Configurator了

1. 在Options中将Third Party Libraries中的uC/OS-III打开

2

2. 在_SYS_Tasks中点灯,后面的延迟1000个tick对于系统的默认配置来说就是延时1秒

3

然后我就发现没有其他需要配置的了,难道移植uCOS的工作就这么结束了?这么简单?不可能吧???赶快生成代码、编译、加载到板子上跑一下,果然没那么顺利,灯不闪。。。没办法,只能debug定位了。好在板子上自带jtag调试模块,打开MPLAB的debug功能,发现板子死在这儿了,异常!!!估计又得调一阵了。。。

4

不得不说MPLAB的调试功能还是相当强大的,Call Stack里还能找到发生异常的点,竟然在kernel中死了,按说uCOS的kernel已经很成熟了,不应该出这种低级问题

5

在前一句打个断点看看异常是怎么发生的,结果令人诧异:就在给*p_ts赋值的时候发生了异常!这就是个局部变量啊,怎么能导致异常呢,看看它的地址确实有些诡异

6

翻开PIC32MX470的芯片手册,找到芯片的memory map,发现0x9D0035FC竟然是Program Flash空间的地址,就这么用指针赋值的话肯定非法,可是p_ts是什么时候变成的这个值呢?

7

再仔细往前找,发现在发生异常前kernel有发生过调度,难道是调度之后寄存器恢复错了?再跟下去发现确实是这样,只要os调度后p_ts就不对了。我们知道uCOS的任务现场是存在栈中的,难不成有栈越界?工程里又没什么应用代码,应该不是应用代码的问题,那会不会是配置的问题呢?查了下配置默认的最小堆栈size是64,系统中除了idle任务的堆栈是64,其他的都至少是512。MIPS和ARM不一样,有32个通用寄存器,难不成64的堆栈size对保存现场来说太小了?改成128试试

8

修改之后重新生成代码、编译、下载,果然跑起来了,看来默认的64的idle任务堆栈确实设置小了

202043eai74l7fb8cyfzbj

用uCOS-III点灯完成,也算小试了一把牛刀,但是没有大规模的改代码,就这么简单的改了改配置就把RTOS跑了起来,这让我心里隐隐地觉得有些不安,有什么焦虑呢,。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • MPLAB
    +关注

    关注

    9

    文章

    222

    浏览量

    68711
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    关于在 Vector Davinci Configurator 上设置 IPCF 的问题求解

    你好。我有一个关于在 Vector Davinci Configurator 上设置 IPCF 的问题。 环境 我正在使用以下环境。 ・微控制器 : S32K358 ・Vector Davinci
    发表于 04-08 07:02

    高低温试验试验功能全解析:恒温 / 循环 / 可编程怎么选?

    广东宏展科技提供高精度高低温试验箱,覆盖电子、汽车等行业,具备恒温、高低温循环及可编程功能,满足多场景测试需求。
    的头像 发表于 02-04 08:59 4081次阅读
    高低温<b class='flag-5'>试验</b>箱<b class='flag-5'>试验</b>功能全解析:恒温 / 循环 / 可<b class='flag-5'>编程</b>怎么选?

    harmony-utils之CacheUtil,缓存工具类

    harmony-utils之CacheUtil,缓存工具类
    的头像 发表于 07-04 16:36 602次阅读

    harmony-utils之CharUtil,字符工具类

    harmony-utils之CharUtil,字符工具类
    的头像 发表于 07-04 16:34 583次阅读

    harmony-utils之CrashUtil,异常相关工具类

    harmony-utils之CrashUtil,异常相关工具类
    的头像 发表于 07-04 16:33 663次阅读

    harmony-utils之DeviceUtil,设备相关工具类

    harmony-utils之DeviceUtil,设备相关工具类
    的头像 发表于 07-03 18:27 764次阅读

    harmony-utils之DisplayUtil,屏幕相关工具类

    harmony-utils之DisplayUtil,屏幕相关工具类
    的头像 发表于 07-03 18:26 597次阅读

    harmony-utils之EmitterUtil,Emitter工具类

    harmony-utils之EmitterUtil,Emitter工具类
    的头像 发表于 07-03 18:24 550次阅读

    harmony-utils之FileUtil,文件相关工具类

    harmony-utils之FileUtil,文件相关工具类
    的头像 发表于 07-03 18:23 685次阅读

    harmony-utils之FormatUtil,格式化工具类

    harmony-utils之FormatUtil,格式化工具类
    的头像 发表于 07-03 18:22 671次阅读

    harmony-utils之ImageUtil,图片相关工具类

    harmony-utils之ImageUtil,图片相关工具类
    的头像 发表于 07-03 18:22 1041次阅读

    harmony-utils之PreviewUtil,文件预览工具类

    harmony-utils之PreviewUtil,文件预览工具类 harmony-utils 简介与说明 [harmony-utils] 一款功能丰富且极易上手的HarmonyOS工具库,借助众多
    的头像 发表于 07-03 11:40 583次阅读

    harmony-utils之StrUtil,字符串工具类

    harmony-utils之StrUtil,字符串工具类 harmony-utils 简介与说明 [harmony-utils] 一款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具类
    的头像 发表于 07-03 11:32 784次阅读

    harmony-utils之TypeUtil,类型检查工具类

    harmony-utils之TypeUtil,类型检查工具类 harmony-utils 简介与说明 [harmony-utils] 一款功能丰富且极易上手的HarmonyOS工具库,借助众多
    的头像 发表于 06-30 17:35 631次阅读

    harmony-utils之DateUtil,日期工具类

    harmony-utils之DateUtil,日期工具类
    的头像 发表于 06-25 22:15 524次阅读