文档章节

【连载】GO语言系列1.Rockchip RK3288, GO!GO!!GO!!!

Firefly开源平台
 Firefly开源平台
发布于 2015/06/12 18:06
字数 1402
阅读 29
收藏 0
点赞 0
评论 0

前言: 
    最近看了看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下载。

© 著作权归作者所有

共有 人打赏支持
Firefly开源平台
粉丝 0
博文 2
码字总数 1716
作品 0
中山
【GoRK3288】1.Rockchip RK3288, GO!GO!!GO!!!

前言: 最近看了看Google的Go语言,发现有点意思,这个开源的项目准备用golang来实现。 其实开发板本身的驱动程序已经实现了各个功能,但是有的时候在使用中有些麻烦,有可能需要修改dts文件...

firefly-小零 ⋅ 2015/06/10 ⋅ 0

Python进阶系列连载(13)——Python内置高阶函数filter(下)

前言 进阶部分连载继续~ 如果还没看过我的入门连载部分,先看: https://ask.hellobi.com/blog/wangdawei/10288 当然,小编的免费入门课程已经有咯,看过连载的朋友可以看看视频再快速梳理一...

ID王大伟 ⋅ 04/28 ⋅ 0

[RK3399][Android7.1] Display中的VOP模块

OS: Android 7.1 Board: Firefly-RK3399 Uboot: v2017.02 什么是VOP ? 全称 Video Output Processor, 是Rockchip系列Soc的Display Controller(显示控制器), 用来将video memory中的image d......

kris_fei ⋅ 01/11 ⋅ 0

微信公众帐号开发教程第1篇-引言

接触微信公众帐号已经有两个多月的时间了,在这期间,除了陆续完善个人公众帐号xiaoqrobot以外,还带领团队为公司开发了两个企业应用:一个是普通类型的公众帐号,另一个是会议类型的公众帐号...

bliver ⋅ 2013/11/29 ⋅ 0

芯客网基于 RK3288 开源开发板 PopMetal 即将上线

PopMetal基于RK32系列开源开发板即将登陆“芯客网”,RK3288采用28纳米HKMG工艺打造,四核Cortex-A17,主频高达1.8H,GPU采用ARM Mali-T764,支持4K H.264 和 10bits H.265视频解码,1080P 多...

超级丹 ⋅ 2014/11/18 ⋅ 2

微信公众帐号开发系列教程第1篇-引言 (Java版)

接触微信公众帐号已经有两个多月的时间了,在这期间,除了陆续完善个人公众帐号xiaoqrobot以外,还带领团队为公司开发了两个企业应用:一个是普通类型的公众帐号,另一个是会议类型的公众帐号...

刘靖煌 ⋅ 2013/10/31 ⋅ 4

2015年用户界面工具干货资源精选

| 更多干货资源请移步用户界面专题 | DevExpress 2015.1超详细更新说明文档中文版 历时两月吐血翻译整理的DevExpress 2015.1超详细更新说明文档 | 附PDF版下载地址>> DevExpress 15.2帮助文档...

百mumu ⋅ 2015/12/25 ⋅ 0

个人私有云创建

利用K8S技术栈打造个人私有云: 【利用K8S技术栈打造个人私有云系列文章目录】 利用K8S技术栈打造个人私有云(连载之:初章)利用K8S技术栈打造个人私有云(连载之:K8S集群搭建)利用K8S技术...

whoisliang ⋅ 02/02 ⋅ 0

[RK3288][Android6.0] 调试笔记 --- tar压缩源代码出现error

Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92 现象: 用tar命令打包工程师,出现error, log如下 分析: 看不到出错原因,就将正常的输出log重定向 tar zcvf rk3288.tar.gz rk3288 > /d...

kris_fei ⋅ 01/05 ⋅ 0

Firefly RK3288开源硬件项目启动

Firefly RK3288是一个高性能的开源硬件平台,使用瑞芯微最新的RK3288处理器,支持Android4.4和Ubuntu系统,并支持HDMI 4K超高清输出,扩展还预留了MIPI、LVDS等LCD显示接口以及GPIO、SPI、I...

TeeFirefly ⋅ 2014/06/19 ⋅ 14

没有更多内容

加载失败,请刷新页面

加载更多

下一页

HiSDP —— 高效的C++软件开发平台

目前阿里集团每天有近1000PB的数据是通过LogAgent采集的,为了让LogAgent做到资源占用节省和高效采集,背后是基于HiSDP去构建的。 缘由 当决定采用C++编程语言去开发一个软件时,紧接着所面临...

阿里云云栖社区 ⋅ 12分钟前 ⋅ 0

zookeeper-3.4.12 下载与安装教程

一、zookeeper下载地址 http://mirrors.hust.edu.cn/apache/zookeeper/ 二、启动教程 把压缩包放在指定目录下 第三: 进入 conf文件夹底下 zoo_sample.cfg 文件名改成 zoo.cfg 第四步: 进入b...

泉天下 ⋅ 14分钟前 ⋅ 0

Oracle 中文日期转换

SELECT TO_date('2011年11月11日', 'yy"年"mm"月"dd"日"') FROM DUAL; 1. Oracle无法识别中文格式,所以添加双引号。 2. 后面的格式是指字符串在转换前的格式,而不是指转换后的格式。...

江戸川 ⋅ 15分钟前 ⋅ 0

MySell:API Spring Boot

起步 类目 商品 订单

BeanHo ⋅ 17分钟前 ⋅ 0

Spring方法拦截器MethodInterceptor

参考资料 1、Spring方法拦截器MethodInterceptor 2、Sharding JDBC源码分析-JdbcMethodInvocation类的作用

哎小艾 ⋅ 21分钟前 ⋅ 0

正则表达式

元字符 元字符,又叫字符集,就是用一些特殊符号表示特定种类的字符或位置。 匹配字符 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 匹配...

wangchen1999 ⋅ 21分钟前 ⋅ 0

数据库数据导入Elasticsearch案例分享

基于bboss持久层和bboss elasticsearch客户端实现数据库数据导入es案例分享(支持各种数据库和各种es版本) 1.案例对应的源码 https://gitee.com/bboss/bboss-elastic/blob/master/bboss-el...

bboss ⋅ 21分钟前 ⋅ 0

动手---sbt(2)

参考 https://blog.csdn.net/leishangwen/article/details/46225587 建立一个chisel_max目录,文件内容如后面所述,现在开始执行命令: joe@joe-Aspire-Z3730:/media/sdb4/download/scala$ c......

whoisliang ⋅ 28分钟前 ⋅ 0

纯js实现最简单的文件上传(后台使用MultipartFile)

<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>XMLHttpRequest上传文件</title> <script type="text/javascript"> //图片上传 var xhr......

孟飞阳 ⋅ 33分钟前 ⋅ 0

iOS宇宙大战游戏、调试工具、各种动画、AR相册、相机图片编辑等源码

iOS精选源码 日期时间选择器,swift Space Battle 宇宙大战 SpriteKit游戏源码 LLDebugTool - 便捷的IOS调试工具(新增截屏功能) 相机扫描or长按识别二维码、FMDB、键盘动态高度、定位等 动画...

sunnyaigd ⋅ 34分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部