# turbo **Repository Path**: hu-wangwei/turbo ## Basic Information - **Project Name**: turbo - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: release_AV - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-06-06 - **Last Updated**: 2025-04-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 驿公里turbo平台使用指引 更新日期:2021.12.07 [显示网页版](./index.html) ## 学习路线 - 先熟悉turbo平台的硬件 [硬件详情](./doc/hardware.md) [网页版](./doc/hardware.html) - 然后需要搭建好开发环境 [进入指引](./doc/evn.md) [网页版](./doc/evn.html) - 这时拉取turbo平台代码,熟悉平台代码结构 [进入指引](./doc/turbo.md) [网页版](./doc/turbo.html) - 现在可以创建自己的新项目了 ## 创建自己的项目 - 在turbo根目录下,执行 ./cpj.exe [项目名] 指令,即可创建新项目,如:./cpj.exe hello ; - 在turbo根目录下,执行 ./ck.exe [项目名] [主板名] 指令,即可生成项目keil工程,如: ./ck.exe hello ok1054w ; - 进入projects/Keil目录,打开自己的项目工程,编译,烧写,调试。 需要注意的是: 执行指令的终端,需要在turbo根目录,否则可能会找不到指令 - 删除项目:在turbo根目录下,执行 ./cpj.exe [项目名] -d 指令,即可删除指定名称的项目,如:./cpj.exe demo -d ; --- ## 编码规范约束 代码设计应严格按照此编码规范设计,以此来减少bug风险,以及代码风格统一降低代码阅读障碍。模块程序包含平台代码和应用程序代码,所以代码都应遵循规格。 ### 1. 程序函数或变量规范 1. 函数接口应以模块名及其模块含义来开头,函数名中后部以函数功能描述定义; 2. 文件中的全局变量一律使用 static 静态全局变量,不要出现一般的可跨文件的全局变量; 3. 全局变量命名应以变量保存内容功能或含义命名,不得出现无含义名称。结构体、枚举等自定义类型内元素名称同样适合本条; ### 2. debug调试接口的设计规范 - 每个模块应当有自己的调试接口,平台提供调试接口的新增接口: xp_cli_debug_add(),输入参数即为模块debug接口函数名,模块的debug接口需要按照统一的规范设计,模块的debug接口有3个输入参数,分别表示:模块标识,功能标识和参数标识,其中模块和功能标识是必须存在的,参数标识如果没有实际信息,会是内存默认信息。模块的debug接口返回int类型数据,标识是否在本模块debug接口内有匹配上debug指令,如果没有则返回0,有则返回1.系统会根据此标识终止后续指令匹配。 - 一般在在模块的init接口内部调用debug add 接口,这样在初始化模块的时候就会同时增加模块的debug接口,如果不初始化模块,也不会增加模块的debug接口。 ### 3. 循环或嵌套代码的规范 - 对象:所有循环体(如:while for do...while),嵌套体; - 在上面循环或嵌套体中不确定执行循环次数、循环次数过大或循环执行完所需时间超过毫秒时,应当在循环体或嵌套体中加入sleep 或者主动挂起现成的操作。否则可能会造成线程阻塞,或其线程不能按预期执行的情况。 ### 4. 网络通信接口的调用规范 - 特点:网络通信接口因为会因为信号状态或者数据量大小会有不确定执行时间; - 所以在非单纯通信线程中,如果执行线程循环时间要求在500ms内时,不应在此类线程中执行通信发送接口,否则可能会造成执行周期有较大的延迟。 - 在有大量通信需求的情况时,应当单独线程管理通信发送。