基于freertos的嵌入式系统开发(二)系统配置2

33 篇文章 2 订阅
8 篇文章 1 订阅

基于freertos的嵌入式系统开发(二)系统配置2

堆栈的配置

最小堆栈值

在嵌入式系统中,在空闲、定时等一些系统任务中,执行功能短小精悍,或为空函数,不需要很多的堆栈值,当然,有些简单的任务也可以使用这个定义的堆栈值。配置项为:
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 70 )
注意:该数字的单位,一般在ARM中为4个字节。

系统总堆(栈)大小

系统总堆(栈)的大小,往往决定于主处理器的资源情况情况来定义定义这个值。不能太小,太小内存容易溢出;太大也受限于芯片RAM本身大小,另外还需要预留全局变量、动态分配内存等存储空间的需要。配置项为:
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 52 * 1024 ) )
这个一般要比configMINIMAL_STACK_SIZE大好多,适应较大型任务的需求。

任务相关的配置

任务名称最大长度

在C语言中,比较著名的命名规则有匈牙利命名法、骆驼(Camel)命名法和帕斯卡(Pascal)命名法,匈牙利命名法其主要思想是“在变量和函数名中加入前缀以增进人们对程序的理解”。标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。例如:

   lpStr, 表示指向一个以'\0'结尾的字符串的长指针(lp)变量。

而骆驼(Camel)命名法指的是混合使用大小写字母来构成标识符的名字。其中第一个单词首字母小写,余下的单词首字母大写。例如 :

   printDateString(),函数名中每一个逻辑断点都有一个大写字母来标记。

帕斯卡(Pascal)命名法与骆驼命名法类似。只是第一个单词首字母小写,而帕斯卡命名法则是第一个单词首字母大写。例如:

     DisplayInfo()采用了帕斯卡命名法。

上述命名法则的提出,总体目标是提高程序的可读性,达到见名知意的目的,当然,实际命名时也可以将几种命名法结合使用,例如变量名采用匈牙利命名法,而函数采用帕斯卡命名法。所以,在freertos中,任务名称的定义最后按照其功能和命名规范进行,配置项:

  #define configMAX_TASK_NAME_LEN                          ( 16 )

规定任务名称最大16字节,例如:我们定义TaskDualComm为双机通信任务的任务名称,就采用了帕斯卡命名法。而尽量少用TASK1、Task2等名字

APPLICATION_TASK_TAG

在freertos中,函数 xTaskGetApplicationTaskTag()用于获取任务的 Tag(标签)值,标签的功能由用户自行决定,要使用此函数的话,配置项:

 #define configUSE_APPLICATION_TASK_TAG                   1

必须为 1,另外,函数:

portBASE_TYPE xTaskCallApplicationTaskHook( xTaskHandle xTask, void *pvParameter );

的使用也必须定义此宏。

协程相关配置

在FreeRTOS中,协程(coroutine),是由线程并发出来的,没有独立的栈空间,同一个线程并发出来的所有协程共用栈空间,我们知道一般的操作系统,多任务是需要在中断过程中切换堆栈的,算力开销较大,而协程的功能就是在尽量降低开销的情况下,实现上下文快速切换的办法。

是否使用协程

配置项:
#define configUSE_CO_ROUTINES 1
设置成1表示使用协程,0表示不使用协程。如果使用协程,必须在工程中包含croutine.c文件。

协程优先级数目

配置项:

#define configMAX_CO_ROUTINE_PRIORITIES           ( 2 )

任何数目的协程都可以共享一个优先级。使用协程可以单独的分配给任务优先级。其中 0是最低的优先级﹐configMAx_CO_ROUTINE_PRIORITIES-1为最高的优先级。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cyjbj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值