T3280 000:668 SEGGER J-Link V4.80g Log File (0001ms, 0290ms total)
T3280 000:668 DLL Compiled: Feb 13 2014 20:50:02 (0001ms, 0290ms total)
T3280 000:668 Logging started @ 2023-05-07 17:35 (0001ms, 0290ms total)
T3280 000:669 JLINK_SetWarnOutHandler(...) (0000ms, 0290ms total)
T3280 000:669 JLINK_OpenEx(...)
Firmware: J-Link ARM V8 compiled Nov 28 2014 13:44:46
Hardware: V8.00
S/N: 87461523
Feature(s): RDI, FlashBP, FlashDL, JFlash, GDBFull returns O.K. (0273ms, 0563ms total)
T3280 000:942 JLINK_SetErrorOutHandler(...) (0001ms, 0564ms total)
T3280 000:943 JLINK_ExecCommand("ProjectFile = "E:\mySrc\BoYing_Main_System_22_01_01_Code\OtherProject\FreeRtosStm32\CubeMxPro\MDK-ARM\JLinkSettings.ini"", ...) returns 0x00 (0001ms, 0565ms total)
T3280 000:976 JLINK_ExecCommand("Device = STM32F103VE", ...)Device "STM32F103VE" selected (512 KB flash, 64 KB RAM). returns 0x00 (0040ms, 0605ms total)
T3280 001:016 JLINK_ExecCommand("DisableConnectionTimeout", ...) returns 0x01 (0000ms, 0605ms total)
T3280 001:016 JLINK_GetHardwareVersion() returns 0x13880 (0000ms, 0605ms total)
T3280 001:016 JLINK_GetDLLVersion() returns 48007 (0000ms, 0605ms total)
T3280 001:016 JLINK_GetFirmwareString(...) (0000ms, 0605ms total)
T3280 001:070 JLINK_GetDLLVersion() returns 48007 (0000ms, 0605ms total)
T3280 001:070 JLINK_GetCompileDateTime() (0000ms, 0605ms total)
T3280 001:110 JLINK_GetFirmwareString(...) (0000ms, 0605ms total)
T3280 001:124 JLINK_GetHardwareVersion() returns 0x13880 (0000ms, 0605ms total)
T3280 001:175 JLINK_TIF_Select(JLINKARM_TIF_JTAG) returns 0x00 (0001ms, 0606ms total)
T3280 001:176 JLINK_SetSpeed(2000) (0000ms, 0606ms total)
T3280 001:176 JLINK_GetIdData(...) >0x2F8 JTAG>Could not measure total IR len. TDO is constant high. >0x30 JTAG>STM32F1xxx: Can not attach to CPU. Trying connect under reset. >0x2F8 JTAG>TotalIRLen = 9, IRPrint = 0x0011 >0x30 JTAG> >0x210 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG>
>0x2F8 JTAG>TotalIRLen = 9, IRPrint = 0x0011 >0x30 JTAG> >0x210 JTAG> >0x70 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x50 JTAG> >0x80 JTAG> >0x40 JTAG> >0x30 JTAG> >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x40 JTAG> >0x50 JTAG>Found Cortex-M3 r1p1, Little endian. -- CPU_WriteMem(4 bytes @ 0xE0002000) -- CPU_ReadMem(4 bytes @ 0xE000EDF0) -- CPU_ReadMem(4 bytes @ 0xE0002000)FPUnit: 6 code (BP) slots and 2 literal slots -- CPU_ReadMem(4 bytes @ 0xE000EDFC) -- CPU_ReadMem(4 bytes @ 0xE0001000)
-- CPU_WriteMem(4 bytes @ 0xE0001000) -- CPU_ReadMem(4 bytes @ 0xE00FF010)TPIU fitted. -- CPU_ReadMem(4 bytes @ 0xE00FF014)ETM fitted. -- CPU_ReadMem(4 bytes @ 0xE00FF018) ScanLen=9 NumDevices=2 aId[0]=0x3BA00477 aIrRead[0]=0 aScanLen[0]=0 aScanRead[0]=0 (0225ms, 0831ms total)
T3280 001:401 JLINK_JTAG_GetDeviceID(DeviceIndex = 0) returns 0x3BA00477 (0000ms, 0831ms total)
T3280 001:401 JLINK_JTAG_GetDeviceInfo(DeviceIndex = 0) returns 0x00 (0000ms, 0831ms total)
T3280 001:401 JLINK_JTAG_GetDeviceID(DeviceIndex = 1) returns 0x6414041 (0000ms, 0831ms total)
T3280 001:401 JLINK_JTAG_GetDeviceInfo(DeviceIndex = 1) returns 0x00 (0000ms, 0831ms total)
T3280 001:401 JLINK_GetDeviceFamily() returns 3 (0000ms, 0831ms total)
T3280 001:411 JLINK_ReadMem (0xE00FFFF0, 0x0010 Bytes, ...) -- CPU is running -- CPU_ReadMem(16 bytes @ 0xE00FFFF0) -- Data: 0D 00 00 00 10 00 00 00 05 00 00 00 B1 00 00 00 returns 0x00 (0002ms, 0833ms total)
T3280 001:413 JLINK_ReadMem (0xE00FFFD0, 0x0020 Bytes, ...) -- CPU is running -- CPU_ReadMem(32 bytes @ 0xE00FFFD0) -- Data: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ... returns 0x00 (0001ms, 0834ms total)
T3280 001:414 JLINK_ReadMem (0xE00FF000, 0x0018 Bytes, ...) -- CPU is running -- CPU_ReadMem(24 bytes @ 0xE00FF000) -- Data: 03 F0 F0 FF 03 20 F0 FF 03 30 F0 FF 03 10 F0 FF ... returns 0x00 (0001ms, 0835ms total)
T3280 001:415 JLINK_ReadMemU32(0xE000ED00, 0x0001 Items, ...) -- CPU is running -- CPU_ReadMem(4 bytes @ 0xE000ED00) -- Data: 31 C2 1F 41 returns 0x01 (0002ms, 0837ms total)
T3280 001:417 JLINK_SetResetType(JLINKARM_RESET_TYPE_NORMAL) returns JLINKARM_RESET_TYPE_NORMAL (0000ms, 0837ms total)
T3280 001:417 JLINK_Reset() -- CPU is running -- CPU_WriteMem(4 bytes @ 0xE000EDF0) -- CPU is running -- CPU_WriteMem(4 bytes @ 0xE000EDFC) -- 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) >0x80 JTAG> >0x40 JTAG> >0x30 JTAG>
>0x40 JTAG> >0x50 JTAG> >0x40 JTAG> -- CPU_WriteMem(4 bytes @ 0xE000EDFC) -- CPU_WriteMem(4 bytes @ 0xE0001028) -- CPU_WriteMem(4 bytes @ 0xE0001038) -- CPU_WriteMem(4 bytes @ 0xE0001048) -- CPU_WriteMem(4 bytes @ 0xE0001058) -- CPU_WriteMem(4 bytes @ 0xE0002000) -- CPU_ReadMem(4 bytes @ 0xE000EDFC) -- CPU_ReadMem(4 bytes @ 0xE0001000) (0037ms, 0874ms total)
T3280 001:454 JLINK_Halt() returns 0x00 (0000ms, 0874ms total)
T3280 001:454 JLINK_IsHalted() returns TRUE (0000ms, 0874ms total)
T3280 001:454 JLINK_ReadMemU32(0xE000EDF0, 0x0001 Items, ...) -- CPU_ReadMem(4 bytes @ 0xE000EDF0) -- Data: 03 00 03 00 returns 0x01 (0001ms, 0875ms total)
T3280 001:455 JLINK_WriteU32(0xE000EDF0, 0xA05F0003) -- CPU_WriteMem(4 bytes @ 0xE000EDF0) returns 0x00 (0001ms, 0876ms total)
T3280 001:456 JLINK_WriteU32(0xE000EDFC, 0x01000000) -- CPU_WriteMem(4 bytes @ 0xE000EDFC) returns 0x00 (0001ms, 0877ms total)
T3280 001:508 JLINK_GetHWStatus(...) returns 0x00 (0000ms, 0877ms total)
T3280 001:538 JLINK_GetNumBPUnits(Type = 0xFFFFFF00) returns 0x06 (0000ms, 0877ms total)
T3280 001:538 JLINK_GetNumBPUnits(Type = 0xF0) returns 0x2000 (0000ms, 0877ms total)
T3280 001:538 JLINK_GetNumWPUnits() returns 0x04 (0000ms, 0877ms total)
T3280 001:576 JLINK_GetSpeed() returns 0x7D0 (0000ms, 0877ms total)
T3280 001:595 JLINK_ReadMemU32(0xE000E004, 0x0001 Items, ...) -- CPU_ReadMem(4 bytes @ 0xE000E004) -- Data: 01 00 00 00 returns 0x01 (0001ms, 0878ms total)
T3280 001:596 JLINK_ReadMemU32(0xE000E004, 0x0001 Items, ...) -- CPU_ReadMem(4 bytes @ 0xE000E004) -- Data: 01 00 00 00 returns 0x01 (0001ms, 0879ms total)
T3280 001:597 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, 0881ms total)
T3280 001:599 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 (0001ms, 0882ms total)
T3280 001:600 JLINK_Halt() returns 0x00 (0000ms, 0882ms total)
T3280 001:600 JLINK_IsHalted() returns TRUE (0000ms, 0882ms total)
T3280 001:607 JLINK_WriteMem(0x20000000, 0x0164 Bytes, ...) -- Data: 00 BE 0A E0 0D 78 2D 06 68 40 08 24 40 00 00 D3 ... -- CPU_WriteMem(356 bytes @ 0x20000000) returns 0x164 (0003ms, 0885ms total)
T3280 001:611 JLINK_WriteReg(R0, 0x08000000) returns 0x00 (0000ms, 0885ms total)
T3280 001:611 JLINK_WriteReg(R1, 0x044AA200) returns 0x00 (0000ms, 0885ms total)
T3280 001:611 JLINK_WriteReg(R2, 0x00000001) returns 0x00 (0000ms, 0885ms total)
T3280 001:611 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 0885ms total)
T3280 001:611 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 0885ms total)
T3280 001:611 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 0885ms total)
T3280 001:611 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 0885ms total)
T3280 001:611 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 0885ms total)
T3280 001:611 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 0885ms total)
T3280 001:611 JLINK_Wri
FreeRtos移植到STM32
需积分: 0 7 浏览量
更新于2023-06-21
收藏 687KB 7Z 举报
FreeRTOS是一种轻量级、高效的实时操作系统(RTOS),被广泛应用于微控制器,特别是像STM32这样的嵌入式系统。STM32是意法半导体(STMicroelectronics)推出的基于ARM Cortex-M系列内核的微控制器,具有高性能、低功耗的特点。在STM32上移植FreeRTOS,可以为开发复杂的嵌入式应用提供强大的任务调度和并发控制能力。
移植FreeRTOS到STM32的过程主要包括以下几个关键步骤:
1. **环境配置**:你需要安装STM32的开发工具链,如Keil MDK或IAR Embedded Workbench,或者使用意法半导体提供的STM32CubeMX。STM32CubeMX是一个配置和代码生成工具,能够简化硬件初始化代码的编写。
2. **创建项目**:在STM32CubeMX中,选择合适的STM32微控制器型号,配置好系统时钟、中断、外设等参数。这一步会自动生成一个初始化工程,包括HAL库(Hardware Abstraction Layer)或LL库(Low-Layer)的代码。
3. **集成FreeRTOS**:下载FreeRTOS源码,并将其添加到你的项目中。通常,你会在FreeRTOS的源码目录中找到`FreeRTOSConfig.h`文件,这里可以配置任务数量、堆大小等参数以适应STM32的具体需求。
4. **任务定义**:根据应用需求创建任务函数,每个函数代表一个独立的工作线程。在FreeRTOS中,使用`xTaskCreate()`函数创建任务,指定任务函数、栈大小、优先级等参数。
5. **调度器启动**:在主函数中,调用`vTaskStartScheduler()`启动FreeRTOS调度器。在启动调度器之前,确保所有必要的任务已经被创建并且系统堆已经分配。
6. **中断与FreeRTOS**:FreeRTOS允许在中断服务程序中调用某些安全的API,例如`vTaskDelayUntil()`来修改任务的延时时间。但是,大多数API不能在中断上下文中使用,需确保正确处理中断和任务之间的交互。
7. **硬件资源管理**:使用FreeRTOS的信号量、互斥锁、队列等同步机制,可以有效地管理共享硬件资源,避免冲突。
8. **调试与优化**:移植完成后,进行功能测试和性能调试。可能需要调整任务优先级、堆大小、中断服务程序中的FreeRTOS API使用等,以达到最佳运行效果。
9. **固件更新与部署**:将编译后的固件烧录到STM32芯片,通过串口、USB或网络等接口进行测试和调试,确保移植成功。
STM32移植FreeRTOS涉及到系统配置、任务管理、中断处理、资源调度等多个方面,这要求开发者具备扎实的嵌入式系统知识和良好的编程实践。通过移植FreeRTOS,STM32微控制器可以实现更复杂、实时性更强的应用,提高系统效率。

BIN-XYB
- 粉丝: 104
最新资源
- 【Android应用源码】圆环菜单,只有你0想不到的,没有做不到的.zip
- 【Android应用源码】圆环菜单,只有你想不到的,没有做不到的.zip
- 【Android应用源码】原来PATH的菜单效果如此简单。布局+TranslateAnimation搞定.zip
- 【Android应用源码】圆形自定义进度条.zip
- 【Android应用源码】远程登录含有loading登录效.zip
- 【Android应用源码】源码下载工具.zip
- 【Android应用源码】远程登录含有loading登录效果~~完整代码和超级详细注释.zip
- 【Android应用源码】阅读器.zip
- 【Android应用源码】在物理世界中添加矩形).zip
- 【Android应用源码】在wifi下手机与电脑的socket通信.zip
- 【Android应用源码】在线词典源码.zip
- 【Android应用源码】在远程上传以及下载图片---XFire框架.zip
- COMSOL等离子体仿真技术在MPCVD装置与H2放电低气压环境中的应用研究
- 【Android应用源码】支持农历的精美日历项目源码.zip
- 【Android应用源码】支付宝控件接口示例.zip
- 【Android应用源码】支付宝_安卓苹果_快捷支付_文档_代码例子.zip