1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用NANO 3.15 keil5 ARMV6编译 芯片STM32F767 使用CUBE生成硬件初始化。HAL库 使用线程和软件定时器正常。 目前想要加入空闲线程钩子函数来运行看门狗喂狗函数。 测试发现不进入钩子函数。 测试发现取消FINSH组件,就可以进入空闲线程钩子函数。 测试发现FINSH组件优先级设置和空闲线程一样也可以进入空闲线程钩子函数 请问怎么样可以一起使用 debug测试不进入rt_thread_idle_entry函数。 msh-》ps命令查看线程如下。 这不应该进不去空闲线程吧 msh >ps thread pri status sp stack size max used left tick error led 20 suspend 0x00000090 0x000000d0 69% 0x00000005 000 tshell 21 ready 0x00000060 0x00000400 56% 0x00000003 000 tidle 31 ready 0x00000048 0x00000100 28% 0x00000020 000 timer 4 suspend 0x00000070 0x000000a0 70% 0x00000009 000 main 10 close 0x00000054 0x00000200 54% 0x00000012 000 msh > 主函数与钩子函数 static void idle_hook(void) { /* 在空闲线程的回调函数里喂狗 */ //HAL_IWDG_Refresh(&hiwdg); rt_kprintf("idle thread feed the dog success!\n"); } /**
@retval int RT中的main线程也只是一个线程,你可以在该线程中开启自己的线程或者其他操作, 完成后即退出。也可以在该线程中最后做一个死循环来一直执行自己的某个任务。 都是可以的。 */ int main(void) { / 硬件初始化在rt_hw_board_init中完成 / / 执行线程初始化 / /* 设置空闲线程回调函数 */ rt_thread_idle_sethook(idle_hook); led_thread_init(); // soft_timer_init(); // mb1_thread_init(); // mb2_thread_init(); // User_Led_Init(); / 完成后退出主函数线程 / } 开启LED线程代码如下 /* USER CODE BEGIN Header */ /* *
*/ /* Includes ------------------------------------------------------------------*/ #include "rt_led.h" /* Private includes ----------------------------------------------------------*/ #include "board.h" #include "rtthread.h" #include "rt_led.h" /* Private define ------------------------------------------------------------*/ /* 线程配置 */ #define THREAD_PRIORITY 20//线程优先级 #define THREAD_TIMESLICE 0X05//线程时间片 #define THREAD_STACK_SIZE 0XD0//栈大小 /* Private typedef -----------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/ /* Private macro -------------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/ /* 定义线程控制块 */ static rt_thread_t led_thread = RT_NULL;//LED线程 /* Private function prototypes -----------------------------------------------*/ /**
*/ static void led_thread_entry(void *parameter) { while (1) { HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET); rt_thread_mdelay(500); HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET); rt_thread_mdelay(500); } } int led_thread_init() { led_thread = /* 线程控制块指针 */ rt_thread_create( "led", /* 线程名字 */ led_thread_entry, /* 线程入口函数 */ RT_NULL, /* 线程入口函数参数 */ THREAD_STACK_SIZE, /* 线程栈大小 */ THREAD_PRIORITY, /* 线程的优先级 */ THREAD_TIMESLICE); /* 线程时间片 */ /* 启动线程,开启调度 */ if (led_thread != RT_NULL) { rt_thread_startup(led_thread); rt_kprintf("led created success.\n"); } else { rt_kprintf("led created failed.\n"); return -1; } return 0; } /* 导出到 msh 命令列表中 */ //MSH_CMD_EXPORT(led_thread_init,led thread init); 硬件初始化如下 void rt_hw_board_init(void) { /*
MPU_Config(); /* Enable I-Cache---------------------------------------------------------*/ SCB_EnableICache(); /* Enable D-Cache---------------------------------------------------------*/ SCB_EnableDCache(); /* 1、系统、时钟初始化 */ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); // 初始化 HAL 库 /* Configure the system clock */ SystemClock_Config(); // 配置系统时钟 SystemCoreClockUpdate(); // 对系统时钟进行更新 /* 2、OS Tick 频率配置,RT_TICK_PER_SECOND = 1000 表示 1ms 触发一次中断 */ HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/RT_TICK_PER_SECOND); /* 硬件 BSP 初始化*/ MX_GPIO_Init(); MX_DMA_Init(); //MX_IWDG_Init(); /* Call components board initial (use INIT_BOARD_EXPORT()) */ #ifdef RT_USING_COMPONENTS_INIT /* 调用组件初始化函数 (use INIT_BOARD_EXPORT()) */ rt_components_board_init(); #endif #if defined(RT_USING_USER_MAIN) && defined(RT_USING_HEAP) rt_system_heap_init(rt_heap_begin_get(), rt_heap_end_get()); #endif } |
|
相关推荐
5个回答
|
|
是否打开了钩子函数功能
|
|
|
|
打开了
// // // using hook //#define RT_USING_HOOK // // // using idle hook #define RT_USING_IDLE_HOOK |
|
|
|
|
|
|
|
|
|
|
|
我在接收字符中加入延迟就好了。多谢哈
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1111 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
3930 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1534 浏览 0 评论
2287 浏览 0 评论
1730 浏览 0 评论
75562 浏览 21 评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-31 02:19 , Processed in 0.661137 second(s), Total 77, Slave 61 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号