4.2 FreeRTOS的编码标准和命名风格 作为初学者,非常有必要了解 FreeRTOS的编码标准和命名风格,这对于以后的学习大有裨益。 4.2.1 FreeRTOS的编码标准 FreeRTOS核心源码文件的编写遵循 MISRA代码规则,同时支持各种编译器。但考虑到有些编译器的性能还比较 弱,不支持 C语言的新标准 C99和 C11 的一些特性和语法,所以 FreeRTOS的源码中就没有引入 C99和 C11的新特 性,但是有一个例外,源码中有用到头文件 stdint.h(这个文件是 C99标准才引入的)。如果用户使用的编译器没 有这个头文件的话,可以将 FreeRTOS 源码文件中,此路径下 FreeRTOS/Source/include的一个 stdint.readme文 件修改为 stdint.h文件后用于这个编译器。  MISRA MISRA (The Motor Industry Software Reliability Association 汽车工业软件可靠性联会) 是位于英国 的一个跨国汽车工业协会,其成员包括了大部分欧美汽车生产商。其核心使命是为汽车工业提供服务和协助, 帮助厂方开发安全的、高可靠性的嵌入式软件。这个组织最出名的成果是所谓的 MISRA C Coding Standard, 这一标准中包括了 127条 C语言编码标准,通常认为,如果能够完全遵守这些标准,那你的 C代码是易读、可 靠、可移植和易于维护的。现在很多嵌入式开发者都以 MISRA C来衡量自己的编码风格,比如 uC/OS-II就宣 传 99%遵守 MISRA标准。 4.2.2 FreeRTOS的命名规则 初学 FreeRTOS的用户对其变量和函数的命名比较迷惑,下面专门做一下介绍:  变量  uint32_t定义的变量都加上前缀 ul。u代表 unsigned 无符号,l代表 long长整型。  uint16_t定义的变量都加上前缀 us。u代表 unsigned无符号,s代表 short短整型。  uint8_t定义的变量都加上前缀 uc。u代表 unsigned无符号,c代表 char字符型。  stdint.h文件中未定义的变量类型,在定义变量时需要加上前缀 x,比如 BaseType_t和 TickType_t定 义的变量。  stdint.h文件中未定义的无符号变量类型,在定义变量时要加上前缀 u,比如 UBaseType_t 定义的变 量要加上前缀 ux。  size_t 定义的变量也要加上前缀 ux。  枚举变量会加上前缀 e。  指针变量会加上前缀 p,比如 uint16_t定义的指针变量会加上前缀 pus。  根据 MISRA代码规则,char定义的变量只能用于 ASCII字符,前缀使用 c。  根据 MISRA代码规则,char *定义的指针变量只能用于 ASCII字符串,前缀使用 pc。  函数  加上了 static声明的函数,定义时要加上前缀 prv,这个是单词 private的缩写。  带有返回值的函数,根据返回值的数据类型,加上相应的前缀,如果没有返回值,即 void类型 ,函数的前缀加上字母 v。  根据文件名,文件中相应的函数定义时也将文件名加到函数命名中,比如 tasks.c 文件中函数 vTaskDelete,函数中的 task 就是文件名中的 task。  宏定义  根据宏定义所在的文件,文件中的宏定义声明时也将文件名加到宏定义中,比如宏定义 configUSE_PREEMPTION 是定义在文件 FreeRTOSConfig.h 里面。宏定义中的 config就是文件名中的 config。另外注意,前缀要小写。  除了前缀,其余部分全部大写,同时用下划线分开。  char型变量无符号数和有符号数的切换方法 MDK 中可以在 Options->C/C++选项中设置 char型变量为有符号数或者无符号数,默认不选择单选框的情况下 char型变量是 8位无符号数,选上后就是 8位有符号数:
2022-11-11 20:49:35 10.1MB freertos, mcu, 嵌入式
1
Zynq配置控制器 一种配置控制器解决方案,允许Zynq器件配置下游FPGA。 可以在上面的GitHub“发布”选项卡中找到此IP的正式版本。 ##概述此IP旨在安装到Xilinx Vivado / SDK工具中,使用户能够为Zynq器件创建一种配置一个或多个下游FPGA器件的方法。 该控制器是为7系列设备设计的,但是由于比特流格式的通用性,它也可以用于配置较早的FPGA。 随着设计变得越来越复杂并需要更多的设备,通常希望让一个Zynq SoC设备充当其他FPGA的配置控制器。 这种方法还允许对整个系统中的各种比特流使用统一的存储介质。 注意:此控制器不允许配置下游Zynq-7000设备。 这是因为除JTAG端口外,Zynq-7000设备没有“从”配置模式。 该库是使用创建的,但可能会与其他版本向前和向后兼容。 ## Xilinx配置模式根据电路板布局,所需的配置速度和I / O
2022-11-10 18:45:47 24.23MB VHDL
1
都是网上找的,比如命令格式那一块我就找了很久,希望对大家有用。里面有一个SPI的程序,改改就可以控制任何SPI接口的芯片了
1
为监测和控制航天器用电源控制器的工作状态,保障其正常运行,该系统接口采用协议芯片 BU-61580.基于FPGA时序逻辑控制,设计一种MIL-STD-1553B.总线通信系统,并对该遥测遥控系统的通信硬件电路及时序逻辑控制进行了详细设计,在简化系统外围硬件电路设计的同时提高了集成度;最后,通过测试板卡对总线通信系统进行了遥测遥控测试,测试结果证明了系统的正确性.
2022-11-10 14:23:47 424KB 自然科学 论文
1
μPixels(微像素) 用于启用 MicroPython 的微控制器的可寻址 RGB LED 灯条控制器 内容 特别感谢 特征 只需三行代码即可启动并运行! 由微控制器本身托管的用户友好界面! 从延迟时间、颜色、亮度完全控制动画 完全可定制的动画和用户界面,仅用 Python/HTML/CSS/JS 编写! 与用户界面一起使用,或以编程方式使用Animations API 从网络调用动画! 支持可选的独立状态指示灯 LED 开箱即用的动画: 彩虹 彩虹追逐 弹跳 火花 擦拭 追赶 RGB 淡入淡出 交替颜色 随机填充 从中间填充 从侧面填充 填充条 圣诞节 变更日志 释放 变化 日期 v2.0 /execute API 正式发布 添加 setStrip 方法 新的彩虹追逐 + 擦拭 + 闪光动画 追逐动画的片段长度 12/31/2020 v1.2 新颜色部分 新的
1
本资源主要包括完成设计道路交通拥挤程度和车站流量控制的两个简易模糊控制器,完成了双输入单输出的模糊控制,报告中包括MATLAB代码(含详细注释)和运行结果。可供MATLAB初学者及交通控制领域相关的爱好者参考。
2022-11-09 13:21:24 517KB 计算智能 模糊控制 MATLAB 交通控制
1
闸门集中控制系统PLC控制器软件V1.0设计说明书doc,闸门集中控制系统PLC控制器软件V1.0设计说明书
2022-11-08 17:06:42 1.01MB 说明书
1
chapter14 基于粒子群算法的PID控制器优化设计,粒子群算法也是个不错的优化参数算法
1
TCA8418 TCA8418 I2C键盘控制器Arduino库 目前仍在开发中。 您的里程可能会有所不同,使用风险自负。 大多数GPIO功能仍在开发中,某些功能可能无法完全正常工作。 欢迎任何贡献。 文件将在开发时进行更新。 谢谢鲍勃
2022-11-08 11:41:29 1MB C++
1
UART控制器的vhdl和verilog源码
2022-11-07 20:17:59 145KB UART vhdl verilog
1