硬汉嵌入式论坛

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

[ThreadX全家桶] 关于使用NetX时HAL库的Tick的相关问题

[复制链接]

1

主题

7

回帖

10

积分

新手上路

积分
10
发表于 2021-1-30 14:44:00 | 显示全部楼层 |阅读模式
请教各路大神问题,有没有遇到在初始化PHY的底层驱动时(stm32f4xx_hal_eth.c)时,用到了HAL_Delay、HAL_GetTick等与Tick相关的函数时,跑Debug时是正常的,一旦直接下载到板子上后就卡在那个地方过不去。用的校准文件(stm32f4xx_hal_timebase_tim.c)是硬汉提供的:如下:
  1. /*
  2. *********************************************************************************************************
  3. *        函 数 名: HAL_Delay
  4. *        功能说明: 重定向毫秒延迟函数。替换HAL中的函数。因为HAL中的缺省函数依赖于Systick中断,如果在USB、SD卡
  5. *             中断中有延迟函数,则会锁死。也可以通过函数HAL_NVIC_SetPriority提升Systick中断
  6. *        形    参: 无
  7. *        返 回 值: 无
  8. *********************************************************************************************************
  9. */
  10. void HAL_Delay(uint32_t Delay)
  11. {
  12.         bsp_DelayMS(Delay);
  13. }

  14. HAL_StatusTypeDef HAL_InitTick (uint32_t TickPriority)
  15. {
  16.         return HAL_OK;
  17. }

  18. uint32_t HAL_GetTick (void)
  19. {
  20.         static uint32_t ticks = 0U;
  21.         uint32_t i;

  22.         if (osKernelGetState () == TX_INITIALIZE_IS_FINISHED)
  23.         {
  24.                 return ((uint32_t)osKernelGetTickCount ());
  25.         }

  26.         /* 如果ThreadX还没有运行,采用下面方式 */
  27.         for (i = (SystemCoreClock >> 14U); i > 0U; i--)
  28.         {
  29.                 __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); __NOP();
  30.                 __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); __NOP();
  31.         }
  32.         
  33.         return ++ticks;
  34. }
复制代码


回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2021-1-31 08:13:13 | 显示全部楼层
这些不是ThreadX的API

osKernelGetState
回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2021-1-31 10:00:06 | 显示全部楼层
eric2013 发表于 2021-1-31 08:13
这些不是ThreadX的API

osKernelGetState

抱歉,写错了,实际用的是_tx_thread_system_state == TX_INITIALIZE_IS_FINISHED,编译是通过的。问题是在编译过的基础上出现的
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2021-1-31 10:40:53 | 显示全部楼层
wxfpuw001 发表于 2021-1-31 10:00
抱歉,写错了,实际用的是_tx_thread_system_state == TX_INITIALIZE_IS_FINISHED,编译是通过的。问题是 ...

没移植好,明天上午从论坛下载我发布ThreadX全家桶所有组件综合模板参考吧。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-20 01:33 , Processed in 0.210719 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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