当“树莓派”遇上RT-Thread Smart——应用编程入门

我们从现在开始会逐步连载RT-Thread Smart(简称rt-smart,甚至有时会称为smart os)的介绍文章,旨在让大家认识,接触到smart os的方方面面。

这个是本系列的第一篇文章,一些介绍及树莓派上rt-smart的应用编程入门(更多的从应用程序角度入手)。后续还包括在rt-smart上的不同应用程序介绍:

  • wget & curl移植

  • busybox移植

  • sdl图形类应用

  • dropbear及ssh server应用

为什么选择树莓派

树莓派是第一个smart对外提供公开支持的硬件平台?选择树莓派有诸多方面的原因:第一,它可以算是普及度最广的一款ARM Cortex-A硬件开发板,被广泛地应用在一些创新应用,高校教育等方面。第二,自树莓派4B发布以来,芯片核心部分也越来越标准化(相比较之前的树莓派2、3等,携带了标准的GIC中断控制器,有线以太网网口(vs 树莓派3的USB转有线以太网)),从这个再把rt-smart移植扩展到其他A系列处理器也会是很好的参考,例如后续ART-Pi版本ART-Pi smart开发板(ARM Cortex-A7核心,更合适的量产版本)。                

树莓派4B包括了4核的ARM Cortex-A72,1.5GHz的BCM2711芯片,可以执行ARM AArch64位指令,也可以执行ARM AArch32位指令,具备标准化的通用控制器GIC。和树莓派3B+的硬件规格对比情况:   

编写应用程序

要在树莓派上运行smart也很简单,直接下载smart的发布版,里面有树莓派4B上对应的移植代码,及一些用户态应用程序。

在smart上写程序,可以有以下几种方式:传统的RT-Thread scons构建方式;类Linux的方式,这里给出了基于Makefile的方式,及基于CMake的方式。下面通过一个 ❀ 花式的Hello World程序来进行介绍。

采用scons构建的应用程序

因为RT-Thread原生是采用scons来进行构建的,所以这里也用scons来构建一个应用程序,它会调用RT-Thread的一些API来创建一个线程,并输出"hello world!"。

examples/scons/main.c文件清单

 1#include <rtthread.h>
 2
 3void thread_entry(void* parameter)
 4{
 5    rt_kprintf("hello world\n");
 6}
 7
 8int main(int argc, char** argv)
 9{
10    rt_thread_t tid;
11    tid = rt_thread_create("hello", thread_entry, RT_NULL, 
12        1024, 20, 20);
13    if (tid)
14    {
15        rt_thread_startup(tid);
16    }
17    rt_thread_mdelay(100);
18
19    return 0;
20}

对应的编译脚本,包含两个,一份是SConscript脚本,另外一份是SContruct脚本

SConstruct文件清单:

 1import os
 2import sys
 3
 4# UROOT_DIR指向rt-smart sdk中的userapps文件夹
 5UROOT_DIR = os.path.join('..', '..&#
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值