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

    文章

    215

    浏览量

    66784
收藏 人收藏

    评论

    相关推荐

    使用purepath wireless configurator能否对编码器AIC3254内置的miniDSP进行相应的配置

    由于我们买了purepath无线开发套件来进行试验,同时我们采用了编码器AIC3254来替代原有的AIC3101. 使用软件purepath wireless configurator 对整个
    发表于 11-05 06:10

    智能显示控制仪XMT808配置编程说明

    电子发烧友网站提供《智能显示控制仪XMT808配置编程说明.pptx》资料免费下载
    发表于 10-30 16:59 0次下载

    温升试验条件和试验原理

    温升试验是一种用于评估设备在正常工作条件下由于热效应而产生的温度变化的测试。这种测试对于确保设备在长时间运行时的可靠性和安全性至关重要。以下是温升试验的条件和原理的解释: 一、温升试验条件 环境温度
    的头像 发表于 09-30 10:58 741次阅读

    变频串联谐振交流耐压试验装置的应用是什么?

    试验装置具有以下几个显著的技术特点:体积小、重量轻:相比传统的工频耐压装置,变频串联谐振试验装置的体积与重量约为其1/10~1/30,更便于现场搬运和灵活配置。分件式设计:采用分件式设计,可根据现场
    发表于 08-01 11:02

    请问CY8C6137BZI-F54用device configurator设定P0.4, P7.6有什么需要特别留意的地方吗?

    我用MTB device configurator 设定CY8C6137BZI-F54的P0.4, P5.3, P7.6, P12.0为GPIO output且初始状态设定为high, 但最后只有
    发表于 07-24 07:07

    如何使用瑞萨RH850-F1KS4 Smart Configurator配置外设呢?

    本文将介绍如何使用瑞萨 RH850-F1KS4 Smart Configurator 配置外设,如果需要使用 Y-ASK-RH850F1KM-S1-V3_Sample 工程包,可在瑞萨官方网站下载。
    的头像 发表于 05-29 15:24 1665次阅读
    如何使用瑞萨RH850-F1KS4 Smart <b class='flag-5'>Configurator</b><b class='flag-5'>配置</b>外设呢?

    充气试验变压器的使用方法?

    气体压力是否正常(≥0.15MPA)   2、交直流两用试验变压器在做交流耐压时,短路杆插入孔J中,做直流泄漏试验,取出短路杆。   3、限流电阻配置:工频耐压每伏0.1~1欧:直流每伏5~10欧,一般
    发表于 05-11 10:20

    瑞萨Smart Configurator支持SEGGER集成开发工具

    Configurator代码生成器中。此次集成将为Renesas新推出的R9A02G021系列MCU提供端到端的开发工具支持,标志着瑞萨电子在通用应用领域首次推出32位RISC-V MCU的重大突破。
    的头像 发表于 05-10 14:25 685次阅读

    工业路由器配置教程

    工业路由器配置教程,包括硬件连接、软件安装、基本配置、安全设置、高级配置和测试验证。确保稳定运行和数据传输,强调安全设置和性能优化。遵循步骤和注意事项,轻松完成设置。
    的头像 发表于 04-23 15:20 1226次阅读
    工业路由器<b class='flag-5'>配置</b>教程

    请问ModusToolbox下对CYBT-483056-02模块编程,如何使能RFX2401C?

    请问ModusToolbox下对CYBT-483056-02模块编程,如何使能RFX2401C? CYBT-483056-02模块中,CYW20719B2通过P2, P16引脚控制RFX2401C芯片的收、发。但是Device configurator中没有这两个引脚的定
    发表于 03-01 13:13

    使用ml configurator进行tflite网络模型的转换不成功怎么解决?

    使用ml configurator进行tflite网络模型的转换不成功,提示错误,请帮忙协助谢谢 [ERROR] Failed to run QEMU
    发表于 01-31 06:56

    open harmony照明开关应用介绍

    最近几年,智能家居成为了人们日常生活中的热门话题。其中,智能照明系统作为智能家居的重要组成部分之一,正在迅速流行起来。而今天我将为大家详细介绍一款智能照明系统中的开关——open harmony照明
    的头像 发表于 01-05 17:00 1082次阅读

    环境试验与可靠性试验的区别

    环境试验与可靠性试验的区别
    的头像 发表于 12-08 09:31 924次阅读
    环境<b class='flag-5'>试验</b>与可靠性<b class='flag-5'>试验</b>的区别

    基于RASC的keil电子时钟制作(瑞萨RA)(2)----配置keil以及使用串口进行打印

    本篇文章主要介绍了一种基于瑞萨RA系列微控制器的电子时钟制作方法,重点关注如何利用瑞萨RA Smart Configurator生成串口配置,以及在具体实践中如何对瑞萨RA2E1开发板进行串口打印
    的头像 发表于 12-01 14:47 652次阅读
    基于RASC的keil电子时钟制作(瑞萨RA)(2)----<b class='flag-5'>配置</b>keil以及使用串口进行打印

    如何在代码中配置DDS编程示例

    DDS编程示例 我们尝试在代码中配置DDS,以之前Hello World话题通信为例。 运行效果 启动两个终端,分别运行发布者和订阅者节点: $ ros2 run learning_qos
    的头像 发表于 11-24 18:08 983次阅读
    如何在代码中<b class='flag-5'>配置</b>DDS<b class='flag-5'>编程</b>示例