硬汉嵌入式论坛

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

[技术讨论] 刚才移植freertos,从v6的freertos历程里面拷贝的源文件,但是跑不起来

[复制链接]

96

主题

297

回帖

585

积分

金牌会员

123

积分
585
发表于 2021-11-18 11:26:22 | 显示全部楼层 |阅读模式
刚才移植freertos,从v6的freertos历程里面拷贝的源文件,但是跑不起来。
自己看历程,在v6的freertos历程demo里面找freertos系统时钟,滴答定时器也没有提供时钟,是为什么呢?历程demo里面没有滴答定时器提供时钟为啥还能跑起来呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107072
QQ
发表于 2021-11-18 11:30:06 | 显示全部楼层
分享你的工程看下。
回复

使用道具 举报

96

主题

297

回帖

585

积分

金牌会员

123

积分
585
 楼主| 发表于 2021-11-18 14:31:22 | 显示全部楼层
eric2013 发表于 2021-11-18 11:30
分享你的工程看下。

这个是工程
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107072
QQ
发表于 2021-11-18 14:32:39 | 显示全部楼层

百度云分享,方便点。
回复

使用道具 举报

96

主题

297

回帖

585

积分

金牌会员

123

积分
585
 楼主| 发表于 2021-11-18 14:45:14 | 显示全部楼层
eric2013 发表于 2021-11-18 14:32
百度云分享,方便点。

链接:https://pan.baidu.com/s/1FAWU3oxh6h-eoS0hbM-Smg
提取码:8888
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107072
QQ
发表于 2021-11-18 15:40:02 | 显示全部楼层


帮你看了,关键的地方都做了。

你把你main函数里面的所有代码注释掉,仅留下任务创建和启动FreeRTOS。

然后我的程序里面滴答在哪里初始化的,我程序里面的滴答在这里初始化的


FreeRTOS的Systick和PendSV初始化在port.c里面实现
http://www.armbbs.cn/forum.php?m ... 9310&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

96

主题

297

回帖

585

积分

金牌会员

123

积分
585
 楼主| 发表于 2021-11-18 15:50:24 | 显示全部楼层
eric2013 发表于 2021-11-18 15:40
帮你看了,关键的地方都做了。

你把你main函数里面的所有代码注释掉,仅留下任务创建和启动FreeRTOS ...

试了一下没有一点反应
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107072
QQ
发表于 2021-11-18 16:06:26 | 显示全部楼层
ssssssss 发表于 2021-11-18 15:50
试了一下没有一点反应

调试下,看看卡在哪里了
回复

使用道具 举报

96

主题

297

回帖

585

积分

金牌会员

123

积分
585
 楼主| 发表于 2021-11-18 16:11:00 | 显示全部楼层
本帖最后由 ssssssss 于 2021-11-18 16:13 编辑
eric2013 发表于 2021-11-18 16:06
调试下,看看卡在哪里了

在调度函数,里面if(xPortStartScheduler()!=pdFALSE)
回复

使用道具 举报

96

主题

297

回帖

585

积分

金牌会员

123

积分
585
 楼主| 发表于 2021-11-18 16:15:17 | 显示全部楼层
eric2013 发表于 2021-11-18 16:06
调试下,看看卡在哪里了

进到xPortStartScheduler()后在prvStartFirstTask();卡了;
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107072
QQ
发表于 2021-11-18 16:19:18 | 显示全部楼层
ssssssss 发表于 2021-11-18 16:11
在调度函数,里面if(xPortStartScheduler()!=pdFALSE)

main函数里面优先设置NVIC优先级分组为4。


回复

使用道具 举报

96

主题

297

回帖

585

积分

金牌会员

123

积分
585
 楼主| 发表于 2021-11-18 16:24:13 | 显示全部楼层
eric2013 发表于 2021-11-18 16:19
main函数里面优先设置NVIC优先级分组为4。

nvic_priority_group_set(NVIC_PRIGROUP_PRE2_SUB2);
                gpio_pin_remap_config(GPIO_SWJ_SWDPENABLE_REMAP, ENABLE);  
设置了的啊
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107072
QQ
发表于 2021-11-18 16:26:28 | 显示全部楼层
ssssssss 发表于 2021-11-18 16:24
nvic_priority_group_set(NVIC_PRIGROUP_PRE2_SUB2);
                gpio_pin_remap_config(GPIO_SWJ_SWDPENABLE_REM ...

不对,是分组4,分组4只有抢占优先级。

其它还有问题的话,你再找找,移植FreeRTOS其实很简单的。
回复

使用道具 举报

96

主题

297

回帖

585

积分

金牌会员

123

积分
585
 楼主| 发表于 2021-11-18 16:34:56 | 显示全部楼层
eric2013 发表于 2021-11-18 16:26
不对,是分组4,分组4只有抢占优先级。

其它还有问题的话,你再找找,移植FreeRTOS其实很简单的。

我修改优先级跑起来了,nvic_priority_group_set(NVIC_PRIGROUP_PRE4_SUB0);但是为啥呢?为啥和优先级有关系呢
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107072
QQ
发表于 2021-11-18 17:27:53 | 显示全部楼层
ssssssss 发表于 2021-11-18 16:34
我修改优先级跑起来了,nvic_priority_group_set(NVIC_PRIGROUP_PRE4_SUB0);但是为啥呢?为啥和优先级有 ...

必须使用分组4,否则调度容易出问题。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-16 12:08 , Processed in 0.195505 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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