【GoRK3288】1.Rockchip RK3288, GO!GO!!GO!!!

前言:

最近看了看Google的Go语言,发现有点意思,这个开源的项目准备用golang来实现。

其实开发板本身的驱动程序已经实现了各个功能,但是有的时候在使用中有些麻烦,有可能需要修改dts文件重新编译内核才能够使用某个功能,所以打算开发这个UIO驱动的开源项目,方便程序的编写。当然,UIO也不是万能的,比如中断,目前我还没有找到好的方法,可以完全抛开内核版本的差异导致需要重新编译驱动来提供中断消息。

按照惯例首先还是先从Go语言的介绍、开发环境的安装开始,然后稍微讲解下本项目所涉及到的Go的语法,后面再来看看整个工程的文件组成及各个库的使用方法。

由于瑞芯微的开发参考手册一般不对个人开放,但是经过天启科技公司(后文简称Firefly)的努力,公布了全部源代码 及 部分的文档,使开发能够顺利进行,所以这个开源项目基于Firefly-RK3288开发板的Lubuntu环境下开发。

Go语言是谷歌2009发布的第二款开源编程语言, 专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程,而且可以在不损失应用程序性能的情况下降低代码的复杂性。

虽然Go尚未成熟,但谷歌旗下App Engine和其他部分产品已经开始使用go语言来编写,Go的网站就是用Go所建立。该软件是专为构建服务器软件所设计(如Google的Gmail)。Google认为Go还可应用到其他领域,包括在浏览器内执行软件,它将成为互联网时代的C语言。

Go可以编译为本地原生程序,编译后的程序已经包括了运行时库,单单一个文件在部署时直接扔到其他板子同种平台上即可直接运行,非常方便。同时使用Go建立的工程,只要不牵扯到操作系统特有的功能或接口,可以不做改动直接在Windows、Linux、ARM上编译,并且现在已经支持Android的开发(1.4版),预计下一版将支持IOS的开发。这些特点和Free Pascal是一样的。

Go目前欠缺的地方:暂时没有图形界面(官方未发布),暂时没有专用的开发工具(ARM Linux上则更少)

随着物联网技术的兴起,使用Go的高并发特性来实现控制服务器将会大大提高运行的性能简化开发的难度,而且可以作为一个节点控制着各种外设。这个节点设备甚至可以是ARM系统,并且核心越多性能越高,所以本次开发采用了高性能的Firefly-RK3288开发板进行开发。

提到Firefly-RK3288开发板,我不得不再次赞一下,这个开发板的设计非常用心,各种元件的安排不拥挤、不松散,赏心悦目。至于RK3288的性能就不用说了,同种方案的平板性能测试已经非常详细了。如果希望了解该开发板的更多特性,可以参考这篇评测文章http://www.eeboard.com/evaluation/firefly-rk3288-review/

OK,板子说完了,再说说Go语言编译环境吧。在Lubuntu下安装Go非常简单,可以直接从新立德里搜索安装。不过呢,这里的版本有点低,1.2x。现在1.4.2已经发布了,自己编译一下也不麻烦,而且这个板子的性能很高,包括所有的测试在内也就10分钟左右。

下载,到https://github.com/golang/go下载zip文件或者直接git,不习惯的话去http://golangtc.com/download直接下载tar.gz包也可以。

安装,最省事的方法是解压到/home/go里,然后进入到src目录,运行all.bash就开始自动编译了。大约10分钟左右,编译完成,打开/home里的.profile文件,在最后添加:

保存重启,Go的环境已经搭建好了。

接下来,安装一个比较方便一点的编辑环境吧。Go语言目前还没有专用的IDE开发环境,一般在Windows上或Linux使用LiteIDE、Ecplise、 SublimeText等,不过到了ARM环境下由于源里的版本比较低,用起来麻烦,所以在试了几个工具后发现gedit和Geany还可以。

这里就以Geany为例进行安装。还是到 新立德 搜索Geany,版本是1.23,默认已经支持Go的高亮和代码自动完成功能了。安装的东西很少很快

标记之后包括依赖只有两项,geany主文件和geany-common,点击应用开始安装。

安装之后可以打开或新建Go文件了,语法高亮看着比较舒服。

编译和运行也比较方便。虽然没有Debug调试功能和断点设置,不过暂时够用了。

GoRK3288库请在https://github.com/tjCFeng/GoRK3288下载。

时间: 2024-10-14 18:18:18

【GoRK3288】1.Rockchip RK3288, GO!GO!!GO!!!的相关文章

【GoRK3288】6.TSADC操作方法

请先在https://github.com/tjCFeng/GoRK3288下载 GoRK3288 开源库. Rockchip RK3288中有好多ADC,HS-ADC(High Speed ADC).TS-ADC(Temperature Sensor ADC). 其中HS-ADC 主要用于传输数据,例如手册中说的GPS数据等:而TS-ADC顾名思义,就是采集各种温度传感器的数据了. 咱们先从简单的开始,所以想办法使用TS-ADC取得各种温度. 由于温度传感器是集成在CPU内部的,所以本次试验不

【GoRK3288】5.PWM操作方法

请先在https://github.com/tjCFeng/GoRK3288下载 GoRK3288 开源库. 这一节来看看PWM的操作方法.前面说到了GPIO7_A1是个复用端口,包括GPIO和PWM,那么这次还是使用这个端口把它变成PWM输出. 还是来看这张图 可以发现PWM在前,GPIO在后,也就是说默认的功能为PWM.如果想使用PWM功能的话,上电后可以直接使用了.不过为了能更加清楚的说明它是个复用端口,可以在上一节作为GPIO使用后,不要断电或重启,可以重新配置为PWM功能再来使用,其他

【GoRK3288】2.Go语法简要说明及GoRK3288结构

Go语言的语句很简单,写起来像是动态语言那样简单.不过虽说代码符号简单,但是刚刚接触的时候却是有些不适应,这里就先把使用 GoRK3288库 的时候需要用到的语法列举一下,其他高深的东西以后再去学习吧. 1.操作符: +.-.*./.%.&.|.^.<<.>>.==.!=.|= 等这些和C语言是一样的,不过在取反的时候就不是~符号了,而是^.跟亦或是同一个符号,怎么区分呢?单目操作是取反,双目操作是亦或.另外要将某一位置0的话 &= ^x是不对的,而是 &^

【GoRK3288】3.GPIO操作方法(1)

从这一节开始,正式讲述 GoRK3288 的使用方法.请先在https://github.com/tjCFeng/GoRK3288下载 GoRK3288 开源库 . 经过前两节的铺垫,大概了解了Go语言的结构,并且在开发板上每个功能都对应 GoRK3288 库中的一个文件,比如GPIO功能就是通过GPIO.go文件来实现的.而所有的示例代码都在上一层文件夹的Test.go中. 先来看Test.go中的第一段代码 func main() {} 函数前面的部分不用再重复叙述,从这个函数开始,是真正对

【GoRK3288】4.GPIO操作方法(2)

请先在https://github.com/tjCFeng/GoRK3288下载 GoRK3288 开源库. 上一节通过不靠谱的方法控制了WorkLED,那么对于一个具有功能复用的GPIO应该怎样操作呢?为了能够表达的更清楚一些,这次先不看代码,而是找一个具有代表性的端口来针对它说明. Firefly-RK3288有两排引出接口,从这里做文章吧 找来找去,发现GPIO7_A1这个口很好,是PWM和GPIO复用的端口,就对它下手. 由于它本身没有连接到任何地方,直接操作看不出效果,所以我翻箱倒柜找

【GoRK3288】7.WatchDog操作方法

请先在https://github.com/tjCFeng/GoRK3288下载 GoRK3288 开源库. WatchDog在做服务器程序时很有用处,服务器在运行过程中,一旦发生死机.程序异常等情况,造成系统运行紊乱,可以通过WatchDog来自动控制整个系统重新启动,可以最大限度地减少人员维护的工作量. WatchDog也叫看门狗,它其实就是一个定时器,每隔一段时间检测一个标志位是否被程序赋值,即所谓的喂狗. 如果在某次检测中发现这个标志位没有被人为干预,那么意味着应用程序或系统不能正常运行

【资源共享】《Rockchip 以太网 开发指南 V2.3.1》

本文早期基于 Rockchip BOX SDK 进行描述目前此文档可适用于所有使用 Rockchip 以太网功能的芯片 下载链接:http://dev.t-firefly.com/thread-12767-1-1.html

【资源共享】《Rockchip 量产烧录 指南 V1.0》

本文档介绍了量产和升级的方式与常见问题 下载链接:http://dev.t-firefly.com/thread-12862-1-1.html

【Kettle】4、SQL SERVER到SQL SERVER数据转换抽取实例

1.系统版本信息 System:Windows旗舰版 Service Pack1 Kettle版本:6.1.0.1-196 JDK版本:1.8.0_72 2.连接数据库 本次实例连接数据库时使用全局变量. 2.1 创建新转换:spoon启动后,点击Ctrl+N创建新转换 2.2 在新转换界面中,右键点击DB连接,系统会弹出[数据库连接]界面. windows系统环境下,可用${}获取变量的内容. 说明: 连接名称:配置数据源使用名称.(必填) 主机名称:数据库主机IP地址,此处演示使用本地IP(