硬汉嵌入式论坛

 找回密码
 立即注册
查看: 477|回复: 3
收起左侧

[MDK] MDK调试FreeRTOS问题请教

[复制链接]

23

主题

58

回帖

127

积分

初级会员

积分
127
发表于 2024-2-4 11:10:34 | 显示全部楼层 |阅读模式

背景:
   下载器:stlink-v2
   MDK:V5.38
   FREERTOS:




  • logic analyzer怎么添加引脚(若是要观测自定义的变量呢)?


例:观测GPIOB.14
按网上查的写成  PORTB.14提示错误


  • event view里是空的




程序里有创建了两个任务,怎么看这任务的状态之类的。
  • 延时时长,一个定义为(5),一个定义为(500),(5)的延时断点都能命中,(500)的延时断点都不能命中是什么问题,如果将(500)改成(5)也能命中?




[C] 纯文本查看 复制代码
#include "sys_freertos_demo.h"
#include "sys_led_tip.h"
#define START_TASK_PRIO			1
#define START_STK_SIZE			120
void start_task(void * pvParameters);  //任务函数
TaskHandle_t StartTask_Handler;		//任务句柄	 


#define TASK1_TASK_PRIO			2
#define TASK1_STK_SIZE			120
void task1_task(void * pvParameters);
TaskHandle_t Task1Task_Handler;		//任务句柄	 

#define TASK2_TASK_PRIO			3
#define TASK2_STK_SIZE			120 
void task2_task(void * pvParameters);
TaskHandle_t Task2Task_Handler;		//任务句柄
	
[size=6]	int _freertos_demo()是放在main中的函数中,类似[/size]
[size=6]int main()[/size]
[size=6]{[/size]
[size=6]...[/size]
[size=6]while(1)[/size]
[size=6]{[/size]
[size=6]  [/size][size=6]_freertos_demo();[/size]
[size=6]}[/size]
[size=6]}
[/size]int _freertos_demo(){
//	delay_init(168);
//	uart_init(9600);
	HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);	
//	printf("Start !\r\n");

//	LED_Init();
	
	xTaskCreate((TaskFunction_t	) start_task,
				(char*			) "start_task",
				(uint16_t		) START_STK_SIZE,
				(void * 		) NULL,
				(UBaseType_t	) START_TASK_PRIO,
				(TaskHandle_t*	) &StartTask_Handler);
	    vTaskStartScheduler();          //开启任务调度

}


	void start_task(void * pvParameters)
	{
		//创建Task1
		taskENTER_CRITICAL();               /* 进入临界区 */
		xTaskCreate((TaskFunction_t	) task1_task,
				(char*			) "task1_task",
				(uint16_t		) TASK1_STK_SIZE,
				(void * 		) NULL,
				(UBaseType_t	) TASK1_TASK_PRIO,
				(TaskHandle_t*	) &Task1Task_Handler);
				
		//创建Task2
		xTaskCreate((TaskFunction_t	) task2_task,
				(char*			) "task2_task",
				(uint16_t		) TASK1_STK_SIZE,
				(void * 		) NULL,
				(UBaseType_t	) TASK2_TASK_PRIO,
				(TaskHandle_t*	) &Task2Task_Handler);
		vTaskDelete(StartTask_Handler); //NULL
		taskEXIT_CRITICAL();                /* 退出临界区 */	
	}


 
	void task1_task(void * pvParameters){
		
		while(1){
			
//			LED1(1);
			sys_led_toggle();
			vTaskDelay(500);//延时函数
//			LED1(0);

		}
	}
 
	void task2_task(void * pvParameters){
	
		while(1){
			
//			LED2(1);
			vTaskDelay(5);
//			LED2(0);
			//sys_led_toggle();
		}
	}


FREERTOSconfig.h
[C] 纯文本查看 复制代码
/*
 * FreeRTOS V202212.01
 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy of
 * this software and associated documentation files (the "Software"), to deal in
 * the Software without restriction, including without limitation the rights to
 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
 * the Software, and to permit persons to whom the Software is furnished to do so,
 * subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
 * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
 * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
 * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 *
 * [url]https://www.FreeRTOS.org[/url]
 * [url]https://github.com/FreeRTOS[/url]
 *
 */

#ifndef FREERTOS_CONFIG_H
#define FREERTOS_CONFIG_H

/*-----------------------------------------------------------
 * Application specific definitions.
 *
 * These definitions should be adjusted for your particular hardware and
 * application requirements.
 *
 * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
 * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
 *
 * See [url]http://www.freertos.org/a00110.html[/url]
 *----------------------------------------------------------*/

#define configUSE_PREEMPTION		1
#define configUSE_IDLE_HOOK			0
#define configUSE_TICK_HOOK			0
#define configCPU_CLOCK_HZ			( ( unsigned long ) 16000000 )
#define configTICK_RATE_HZ			( ( TickType_t ) 1000 )
#define configMAX_PRIORITIES		( 5 )
#define configMINIMAL_STACK_SIZE	( ( unsigned short ) 128 )
#define configTOTAL_HEAP_SIZE		( ( size_t ) ( 17 * 1024 ) )
#define configMAX_TASK_NAME_LEN		( 16 )
#define configUSE_TRACE_FACILITY	0
#define configUSE_16_BIT_TICKS		0
#define configIDLE_SHOULD_YIELD		1


/* Set the following definitions to 1 to include the API function, or zero
to exclude the API function. */

#define INCLUDE_vTaskPrioritySet		1
#define INCLUDE_uxTaskPriorityGet		1
#define INCLUDE_vTaskDelete				1
#define INCLUDE_vTaskCleanUpResources	0
#define INCLUDE_vTaskSuspend			1
#define INCLUDE_vTaskDelayUntil			1
#define INCLUDE_vTaskDelay				1

/* This is the raw value as per the Cortex-M3 NVIC.  Values can be 255
(lowest) to 0 (1?) (highest). */
#define configKERNEL_INTERRUPT_PRIORITY 		255
/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!!
See [url]http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html.[/url] */
#define configMAX_SYSCALL_INTERRUPT_PRIORITY 	191 /* equivalent to 0xb0, or priority 11. */


/* This is the value being used as per the ST library which permits 16
priority values, 0 to 15.  This must correspond to the
configKERNEL_INTERRUPT_PRIORITY setting.  Here 15 corresponds to the lowest
NVIC value of 255. */
#define configLIBRARY_KERNEL_INTERRUPT_PRIORITY	15

#endif /* FREERTOS_CONFIG_H */




回复

使用道具 举报

23

主题

58

回帖

127

积分

初级会员

积分
127
 楼主| 发表于 2024-2-4 11:17:50 | 显示全部楼层
本帖最后由 Y1ng 于 2024-2-4 14:46 编辑



程序改为如下也不行。
int main()
{
。。。
_freertos_demo();
while(1);
}


是不是ST-LINK不支持event view?

回复

使用道具 举报

0

主题

7

回帖

7

积分

新手上路

积分
7
发表于 2024-2-5 01:42:53 | 显示全部楼层
接SWO引脚了吗?还有要打开Trace功能。可以看下这个帖子
https://www.armbbs.cn/forum.php?mod=viewthread&tid=18097
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2024-2-20 23:05:57 | 显示全部楼层
使用eventerRecorder组件和mdk RTE里面的FreeRTOS就可以实时监测任务状态
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-28 02:45 , Processed in 0.170391 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表