RVB2601应用开发实战系列一: Helloworld最小
RVB2601开发板是基于CH2601芯片设计的生态开发板 , 其具有丰富的外设功能和联网功能 , 可以开发设计出很多有趣的应用 。为了开发者更好的了解如何在CH2601上开发应用 , 本文介绍了如何移植对接CH2601芯片到YoC最小系统 , 开发第一个我的helloworld程序 。
整个开发移植工作 , 我们都全部基于剑池CDK集成开发环境进行开发 。剑池CDK以极简开发为理念 , 是专业为IoT应用开发打造的集成开发环境 。它在不改变用户开发习惯的基础上 , 全面接入云端开发资源 , 结合图形化的OSTracer、Profiling等调试分析工具 , 加速用户产品开发 。想要了解更多剑池CDK开发信息 , 请前往平头哥芯片开发社区里集成开发环境获取更多 。
建议在在看本文之前 , 先详细看下RVB2601开发板快速上手教程 。本例程名为ch2601_helloworld_demo , 可以通过CDK直接从OCC拉取 。
【RVB2601应用开发实战系列一: Helloworld最小】YoC最小系统包括对AliOSThings内核的移植 , 涉及到任务切换时的处理器上下文保存和恢复 , 中断事件处理 , 时钟心跳初始化等 。利用一个任务不断周期性的打印"Helloworld"来演示最小系统移植成功 。
2.1适配YoC内核
进入ch2601_helloworld目录 , 打开工程文件 , 所有的组件代码都位于packages节点下 , 点击packages下的rhino_arch包 。该组件包含了ARM、CSKY、RISCV等架构下的任务调度的代码 , 假如架构相同 , 则直接使用包内代码 , 若不存在 , 需要按照接口 , 将port_s.S、port_c.c等代码实现 。具体目录结构如下图:
文章图片
文章图片
由于CH2601使用了RISC-V32bit处理器 , 我们使用rv32_32gpr的具体实现 , 根据Kernel的对接分为以下几个部分
2.1.1任务切换相关cpu_intrpt_switch
该功能函数定义在rhino_arch/src/riscv/rv32_32gpr/port_c.S里 , 主要用户触发软中断 , 切换任务 。用户可以通过该接口来实现任务切换 。tspend_handler
该功能函数定义在rhino_arch/src/riscv/rv32_32gpr/port_c.S里 , 作为tspend中断的处理函数接口 , 主要用于保存当前的任务上下文 , 切换将要运行的下一个任务后 , 恢复下一个任务上下文 。
2.1.2第一个任务初始化cpu_first_task_start
该功能函数定义在rhino_arch/src/riscv/rv32_32gpr/port_c.S里 , 作为第一个任务启动接口 。用户通过调用该接口来实现第一个任务的启动 。cpu_task_stack_init
该功能函数定义在rhino_arch/src/riscv/rv32_32gpr/port_c.c里 , 用于初始化第一个任务的的上下文 , 用户可以通过调用该接口来实现第一个任务的执行入口 , 输入参数等 。
2.1.3内核心跳时钟初始化
内核心跳时钟主要用于系统时钟的计时 , 系统任务的切换等 。我们可以采用一个普通的定时器来做为系统心跳时钟 。SystemInit
该功能函数定义在chip_ch2601/sys/system.c , 实现对整个系统的进行初始化 , 包括对系统内核时钟 , CACHE初始化等 。csi_tick_init
该功能函数在chip_ch2601/sys/tick.c , 实现内核心跳的初始化 , 通过回调函数tick_event_cb对系统时钟进行技术 , 同时通过调用krhino_tick_proc实现对系统任务的调度 。
2.1.4内核初始化
在任务启动前 , 需要对内核做初始化 , 最后调用aos_start来启动第一个任务 。aos_init
该功能函数位于aos/src/main.c , 用于初始化内核 , 启动第一个任务 。aos_start
该功能函数用于启动内核 , 运行第一个任务 。
至此 , YoC内核部分适配结束 , 编译通过后就可以进行Helloworld应用程序开发了 。
2.2开发helloworld程序
2.2.1串口初始化
在app/src/init/init.c里完成board初始化函数里完成串口的初始化 。console_init
- 原神公子0命强度怎么样(原神公子0命实战强度介绍)
- 天涯明月刀手游神刀实战强度测评一览
- 使命召唤手游枪械M1887实战打法分析
- 妄想山海装备词条推荐(什么装备词条实战好用)
- 日进抖金 青岛品牌馆抖音电商实战分享会举办
- 使命召唤手游枪械MW11实战玩法解析
- 在应用开发这件事上,女性同样撑起半边天
- 使命召唤手游Fennec好不好用(Fennec实战测评)
- 2021年“筑创荟”创新创业实战路演大学生科技项目专场举行
- 超猎都市吃鸡技巧有哪些(超猎都市实战技巧分享)
