1## 快速入门:开发Hello World 2快速入门通过完成经典的“Hello World”把搭建UniProton开发环境的各步骤进行实例说明,让用户更直观地初步了解如何基于UniProton进行开发。 3 4## 开发环境说明 5开发平台:cortex_m4 6 7OS版本信息:Linux 8集成开发环境:UniProton-docker 9### 实现过程 10<ol> 11<li>进入到用户的工作目录,这里假设为/workspace/UniProton。</li> 12<li>将UniProton的源码放在/workspace/UniProton目录下。</li> 13<li>在docker环境中搭建工程。</li> 14<li>配置链接器配置文件(.lds文件)。</li> 15<li>配置功能模块,用户需要按照自己实际使用模块配置功能模块。</li> 16<li>在该工程下规划各开发模块的目录结构,如在/UniProton/src/config/prt_config.c文件中实现用户程序。</li> 17<li>在docker中编译整个工程,编译完成后在/UniProton/output目录下生成可执行文件hello。</li> 18<li>加载到单板上运行可执行文件hello。</li> 19</ol> 20 21### Hello World 示例程序 22在main.c文件中编写Hello World示例程序,如参考内容如下(如前所述,PRT_HardBootInit/PRT_HardDrvInit接口中添加用户自定义硬件模块初始化程序,PRT_AppInit接口中添加用户业务代码): 23```c 24#include "prt_task.h" 25#include "prt_config.h" 26 27#ifdef __cplusplus 28#if __cplusplus 29extern "C" { 30#endif /* __cpluscplus */ 31#endif /* __cpluscplus */ 32 33U32 PRT_HardDrvInit(void) 34{ 35 return OS_OK; 36} 37void PRT_HardBootInit() 38{ 39 40} 41void OsTskUser(void) 42{ 43 printf("\n\r Hello World !\n\r"); 44} 45 46U32 PRT_AppInit(void) 47{ 48 U32 ret; 49 TskHandle taskId; 50 struct TskInitParam taskParam; 51 52 taskParam.taskEntry = (TskEntryFunc)OsTskUser; 53 taskParam.stackSize = 0x800; 54 taskParam.name = "uniUserTask"; 55 taskParam.taskPrio = OS_TSK_PRIORITY_05; 56 taskParam.stackAddr = 0; 57 58 ret = PRT_TaskCreate(&taskId, &taskParam); 59 if (ret != OS_OK) { 60 return ret; 61 } 62 63 return OS_OK; 64} 65 66#ifdef __cplusplus 67#if __cplusplus 68} 69#endif /* __cpluscplus */ 70#endif /* __cpluscplus */ 71``` 72 73### 结果验证 74在docker中编译整个工程后生成的可执行文件hello下载到单板上运行,输出结果如下: 75``` 76Hello world! 77```