T3B28 000:093 SEGGER J-Link V6.10i Log File (0001ms, 0041ms total)
T3B28 000:093 DLL Compiled: Oct 25 2016 19:31:51 (0001ms, 0041ms total)
T3B28 000:093 Logging started @ 2019-02-21 14:42 (0001ms, 0041ms total)
T3B28 000:094 JLINK_SetWarnOutHandler(...) (0001ms, 0042ms total)
T3B28 000:095 JLINK_OpenEx(...)
Firmware: J-Link V9 compiled Aug 23 2018 09:45:44
Hardware: V9.20
Feature(s): GDB, RDI, FlashBP, FlashDL, JFlashWEBSRV Webserver running on local port 19080 (0022ms, 0064ms total)
T3B28 000:095 returns O.K. (0022ms, 0064ms total)
T3B28 000:117 JLINK_SetErrorOutHandler(...) (0000ms, 0064ms total)
T3B28 000:117 JLINK_ExecCommand("ProjectFile = "C:\03-githubFiles\MatlabLearn\Source\HC32F460Temp_FreeRTOS\JLinkSettings.ini"", ...). Device "CORTEX-M4" selected. returns 0x00 (0104ms, 0168ms total)
T3B28 000:222 JLINK_ExecCommand("Device = HC32F460PETB", ...). Device "CORTEX-M4" selected. returns 0x00 (0002ms, 0170ms total)
T3B28 000:224 JLINK_ExecCommand("DisableConnectionTimeout", ...). returns 0x01 (0000ms, 0170ms total)
T3B28 000:224 JLINK_GetHardwareVersion() returns 0x16760 (0000ms, 0170ms total)
T3B28 000:224 JLINK_GetDLLVersion() returns 61009 (0000ms, 0170ms total)
T3B28 000:224 JLINK_GetFirmwareString(...) (0000ms, 0170ms total)
T3B28 000:228 JLINK_GetDLLVersion() returns 61009 (0000ms, 0170ms total)
T3B28 000:228 JLINK_GetCompileDateTime() (0000ms, 0170ms total)
T3B28 000:229 JLINK_GetFirmwareString(...) (0000ms, 0170ms total)
T3B28 000:230 JLINK_GetHardwareVersion() returns 0x16760 (0000ms, 0170ms total)
T3B28 000:233 JLINK_TIF_Select(JLINKARM_TIF_SWD) returns 0x00 (0001ms, 0171ms total)
T3B28 000:234 JLINK_SetSpeed(5000) (0000ms, 0171ms total)
T3B28 000:234 JLINK_GetId() >0x108 TIF>Found SWD-DP with ID 0x2BA01477 >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF>AP-IDR: 0x24770011, Type: AHB-AP >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF>
Found Cortex-M4 r0p1, Little endian. -- CPU_ReadMem(4 bytes @ 0xE000EDF0) -- CPU_WriteMem(4 bytes @ 0xE000EDF0) -- CPU_ReadMem(4 bytes @ 0xE0002000)FPUnit: 6 code (BP) slots and 2 literal slots -- CPU_ReadMem(4 bytes @ 0xE000EDFC) -- CPU_WriteMem(4 bytes @ 0xE000EDFC) -- CPU_ReadMem(4 bytes @ 0xE0001000) -- CPU_WriteMem(4 bytes @ 0xE0001000) -- CPU_ReadMem(4 bytes @ 0xE000ED88) -- CPU_WriteMem(4 bytes @ 0xE000ED88) -- CPU_ReadMem(4 bytes @ 0xE000ED88) -- CPU_WriteMem(4 bytes @ 0xE000ED88)
CoreSight components:ROMTbl 0 @ E00FF000 -- CPU_ReadMem(16 bytes @ 0xE00FF000) -- CPU_ReadMem(16 bytes @ 0xE000EFF0) -- CPU_ReadMem(16 bytes @ 0xE000EFE0)ROMTbl 0 [0]: FFF0F000, CID: B105E00D, PID: 000BB00C SCS -- CPU_ReadMem(16 bytes @ 0xE0001FF0) -- CPU_ReadMem(16 bytes @ 0xE0001FE0)ROMTbl 0 [1]: FFF02000, CID: B105E00D, PID: 003BB002 DWT -- CPU_ReadMem(16 bytes @ 0xE0002FF0) -- CPU_ReadMem(16 bytes @ 0xE0002FE0)ROMTbl 0 [2]: FFF03000, CID: B105E00D, PID: 002BB003 FPB
-- CPU_ReadMem(16 bytes @ 0xE0000FF0) -- CPU_ReadMem(16 bytes @ 0xE0000FE0)ROMTbl 0 [3]: FFF01000, CID: B105E00D, PID: 003BB001 ITM -- CPU_ReadMem(16 bytes @ 0xE00FF010) -- CPU_ReadMem(16 bytes @ 0xE0040FF0) -- CPU_ReadMem(16 bytes @ 0xE0040FE0)ROMTbl 0 [4]: FFF41000, CID: B105900D, PID: 000BB9A1 TPIU >0x0D TIF> >0x21 TIF> returns 0x2BA01477 (0075ms, 0246ms total)
T3B28 000:309 JLINK_GetDLLVersion() returns 61009 (0000ms, 0246ms total)
T3B28 000:309 JLINK_CORE_GetFound() returns 0xE0000FF (0000ms, 0246ms total)
T3B28 000:309 JLINK_GetDebugInfo(0x100) -- Value=0xE00FF000 returns 0x00 (0000ms, 0246ms total)
T3B28 000:312 JLINK_GetDebugInfo(0x100) -- Value=0xE00FF000 returns 0x00 (0000ms, 0246ms total)
T3B28 000:312 JLINK_GetDebugInfo(0x101) -- Value=0x00000000 returns 0x00 (0000ms, 0246ms total)
T3B28 000:312 JLINK_ReadMem (0xE0041FF0, 0x0010 Bytes, ...) -- CPU is running -- CPU_ReadMem(16 bytes @ 0xE0041FF0) - Data: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 returns 0x00 (0000ms, 0246ms total)
T3B28 000:312 JLINK_GetDebugInfo(0x102) -- Value=0x00000000 returns 0x00 (0000ms, 0246ms total)
T3B28 000:312 JLINK_GetDebugInfo(0x103) -- Value=0xE0040000 returns 0x00 (0000ms, 0246ms total)
T3B28 000:313 JLINK_GetDebugInfo(0x104) -- Value=0xE0000000 returns 0x00 (0000ms, 0246ms total)
T3B28 000:313 JLINK_GetDebugInfo(0x105) -- Value=0xE0001000 returns 0x00 (0000ms, 0246ms total)
T3B28 000:313 JLINK_GetDebugInfo(0x106) -- Value=0xE0002000 returns 0x00 (0000ms, 0246ms total)
T3B28 000:313 JLINK_GetDebugInfo(0x107) -- Value=0xE000E000 returns 0x00 (0000ms, 0246ms total)
T3B28 000:313 JLINK_GetDebugInfo(0x10C) -- Value=0xE000EDF0 returns 0x00 (0000ms, 0246ms total)
T3B28 000:313 JLINK_ReadMemU32(0xE000EF40, 0x0001 Items, ...) -- CPU is running -- CPU_ReadMem(4 bytes @ 0xE000EF40) - Data: 21 00 11 10 returns 0x01 (0000ms, 0246ms total)
T3B28 000:313 JLINK_ReadMemU32(0xE000EF44, 0x0001 Items, ...) -- CPU is running -- CPU_ReadMem(4 bytes @ 0xE000EF44) - Data: 11 00 00 11 returns 0x01 (0000ms, 0246ms total)
T3B28 000:313 JLINK_ReadMemU32(0xE000ED00, 0x0001 Items, ...) -- CPU is running -- CPU_ReadMem(4 bytes @ 0xE000ED00) - Data: 41 C2 0F 41 returns 0x01 (0001ms, 0247ms total)
T3B28 000:314 JLINK_SetResetType(JLINKARM_RESET_TYPE_NORMAL) returns JLINKARM_RESET_TYPE_NORMAL (0000ms, 0247ms total)
T3B28 000:314 JLINK_Reset() -- CPU is running -- CPU_WriteMem(4 bytes @ 0xE000EDF0) -- CPU is running -- CPU_WriteMem(4 bytes @ 0xE000EDFC) >0x35 TIF> -- CPU is running -- CPU_WriteMem(4 bytes @ 0xE000ED0C) -- CPU is running -- CPU_ReadMem(4 bytes @ 0xE000EDF0) -- CPU is running -- CPU_ReadMem(4 bytes @ 0xE000EDF0) -- CPU is running -- CPU_WriteMem(4 bytes @ 0xE000EDF0) -- CPU is running -- CPU_WriteMem(4 bytes @ 0xE000EDFC) -- CPU is running -- CPU_ReadMem(4 bytes @ 0xE000EDF0)
-- CPU_WriteMem(4 bytes @ 0xE0002000) -- CPU_ReadMem(4 bytes @ 0xE000EDFC) -- CPU_ReadMem(4 bytes @ 0xE0001000) (0020ms, 0267ms total)
T3B28 000:334 JLINK_Halt() returns 0x00 (0000ms, 0267ms total)
T3B28 000:334 JLINK_IsHalted() returns TRUE (0000ms, 0267ms total)
T3B28 000:334 JLINK_ReadMemU32(0xE000EDF0, 0x0001 Items, ...) -- CPU_ReadMem(4 bytes @ 0xE000EDF0) - Data: 03 00 03 00 returns 0x01 (0001ms, 0268ms total)
T3B28 000:335 JLINK_WriteU32(0xE000EDF0, 0xA05F0003) -- CPU_WriteMem(4 bytes @ 0xE000EDF0) returns 0x00 (0001ms, 0269ms total)
T3B28 000:336 JLINK_WriteU32(0xE000EDFC, 0x01000000) -- CPU_WriteMem(4 bytes @ 0xE000EDFC) returns 0x00 (0001ms, 0270ms total)
T3B28 000:361 JLINK_GetHWStatus(...) returns 0x00 (0000ms, 0270ms total)
T3B28 000:369 JLINK_GetNumBPUnits(Type = 0xFFFFFF00) returns 0x06 (0000ms, 0270ms total)
T3B28 000:369 JLINK_GetNumBPUnits(Type = 0xF0) returns 0x2000 (0000ms, 0270ms total)
T3B28 000:369 JLINK_GetNumWPUnits() returns 0x04 (0000ms, 0270ms total)
T3B28 000:381 JLINK_GetSpeed() returns 0xFA0 (0000ms, 0270ms total)
T3B28 000:386 JLINK_ReadMemU32(0xE000E004, 0x0001 Items, ...) -- CPU_ReadMem(4 bytes @ 0xE000E004) - Data: 04 00 00 00 returns 0x01 (0000ms, 0270ms total)
T3B28 000:386 JLINK_ReadMemU32(0xE000E004, 0x0001 Items, ...) -- CPU_ReadMem(4 bytes @ 0xE000E004) - Data: 04 00 00 00 returns 0x01 (0001ms, 0271ms total)
T3B28 000:387 JLINK_WriteMem(0xE0001000, 0x001C Bytes, ...) - Data: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ... -- CPU_WriteMem(28 bytes @ 0xE0001000) returns 0x1C (0002ms, 0273ms total)
T3B28 000:389 JLINK_ReadMem (0xE0001000, 0x001C Bytes, ...) -- CPU_ReadMem(28 bytes @ 0xE0001000) - Data: 01 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 ... returns 0x00 (0000ms, 0273ms total)
T3B28 000:389 JLINK_Halt() returns 0x00 (0000ms, 0273ms total)
T3B28 000:389 JLINK_IsHalted() returns TRUE (0000ms, 0273ms total)
T3B28 000:399 JLINK_WriteMem(0x1FFF8000, 0x05A0 B
HC32F460Temp-FreeRTOS.rar
5星 · 超过95%的资源 需积分: 0 105 浏览量
更新于2021-08-06
1
收藏 1.52MB RAR 举报
《HC32F460单片机与FreeRTOS操作系统深度整合详解》
在嵌入式系统开发中,实时操作系统(RTOS)的应用越来越广泛,它为多任务处理提供了高效的解决方案。本文将深入探讨如何在华大半导体的HC32F460系列单片机上移植并使用FreeRTOS,一个轻量级且被广泛应用的RTOS。
一、HC32F460单片机简介
HC32F460是华大半导体推出的一款高性能32位微控制器,基于ARM Cortex-M4内核,具备浮点运算单元(FPU),能够高效处理复杂的数学计算。该芯片具有高集成度,内置丰富的外设接口,如ADC、SPI、I2C、UART等,适用于工业控制、智能家居、电机驱动等多个领域。
二、FreeRTOS操作系统
FreeRTOS是一个源码开放、小巧且高度可定制的实时操作系统,广泛用于嵌入式系统。其主要特点包括:微内核设计、优先级调度、时间片轮转、任务间通信机制、中断服务以及内存管理等。FreeRTOS的轻量化特性使其能在资源有限的MCU上运行,满足低功耗和实时性的要求。
三、HC32F460移植FreeRTOS的步骤
1. **环境配置**:开发者需要搭建开发环境,包括选择合适的IDE(如Keil uVision或IAR Embedded Workbench),下载FreeRTOS源码库,并将其导入项目。
2. **硬件初始化**:根据HC32F460的数据手册,配置时钟、中断、存储器等硬件资源,为RTOS的运行提供基础。
3. **RTOS配置**:定义系统任务数量、堆栈大小、优先级等,配置FreeRTOS的系统参数。
4. **任务创建**:编写每个任务的函数,然后使用FreeRTOS的`xTaskCreate()`函数创建任务。任务可以理解为独立执行的子程序,它们在RTOS调度下并发运行。
5. **中断服务程序**:在中断服务程序中,可能需要对任务进行调度或者发送信号量、邮箱等进行任务间的通信。
6. **启动RTOS**:在主函数中调用`vTaskStartScheduler()`启动调度器,使得RTOS开始运行。
四、FreeRTOS在HC32F460上的应用实例
在HC32F460上,FreeRTOS可以实现多任务协同工作,例如:
- **数据采集任务**:利用内部的ADC模块定时采集传感器数据,通过UART发送到上位机。
- **电机控制任务**:通过PWM控制电机速度,同时响应中断事件,进行实时调整。
- **无线通信任务**:使用SPI或I2C接口与无线模块交互,实现无线数据传输。
五、调试与优化
移植完成后,开发者需要对系统进行功能验证和性能测试,确保所有任务能正确运行且达到预期效果。这通常涉及到任务调度、中断响应时间、内存使用等方面的调试。在满足功能需求的同时,还要考虑代码优化,减少资源占用,提高系统的实时性和稳定性。
将FreeRTOS移植到HC32F460单片机上,不仅提升了系统的灵活性和复杂任务处理能力,也为开发带来了更多可能性。通过熟练掌握FreeRTOS的使用,开发者可以更好地应对各种嵌入式项目挑战,提升产品竞争力。
WinstonMao
- 粉丝: 26
- 资源: 16
最新资源
- Flask API接口与PostgreSQL数据库操作实现:测试连接、插入和查询数据
- 基于springboot3+jdk17+mybatis-plus+mysql8+kotlin+vue+uniapp+elementui等的专注于中小企业的erp系统
- 基于扩展卡尔曼滤波器的永磁同步电机matlab仿真模型.
- Ansys Fluent激光电弧焊接增材数值模拟案例,内容包含 激光焊接熔池演变(视频教程) SLM激光熔池演变(视频教程) 激光熔覆单道单层、两层、两道单层 (程序讲解) 激光电弧复合熔滴熔池耩合(
- MooInfo是OSHI 的一种可视化实现,用于查看有关系统和硬件的信息 如操作系统,进程,内存,CPU,磁盘,设备,传感器等
- stm32 光敏控制led
- 含风光储并网的IEEE33节点配电系统simulink模型,当风光容量较多时将呢能量储存,风光容量不足负载供电时储能放电,风光储能另配备简单的电流保护,在系统发生故障时可切除并网部分
- RoomIt是一款基于JavaFx、操作简便、轻量的屏幕画笔工具
- 基于BP神经网络的matlab的手写数字识别系统万字文档 包含代码和文档,可实现三项功能具有很好的移植性: 1.单个手写体数字的实时识别 2.邮政编码识别 3.带噪验证码识别 程序还可以实现灰度化,二
- 头歌平台数字逻辑曾西洋老师的课堂答案
- comsol流热拓扑优化多目标平均温度和最小耗散归一化处理
- 基于EKF扩展卡尔曼滤波的PMSM无传感器控制 仿真实现了永磁电机无传感器转速闭环控制 其中,永磁同步电机采用数学模型进行建模,将卡尔曼滤波器作为自适应系统控制电机工作,该算法适用于高性能伺服系统
- comsol多孔介质流固耦合案例,孔压、位移时空演化特征
- 广州幼儿园新学期家长会模板.pptx
- 卡通花朵手绘儿童小学一年级家长会模板.pptx
- 环保地球主题小学生新学期家长会模板.pptx