Firefly-RK3288的GoRK3288项目文档
内部文件
Firefly-RK3288的GoRK3288
项目文档
<智慧云联信息技术(北京)有限公司>
版本
编制者 审核者 批准者
2015年9月14日
张志明 编制日期 审核日期 批准日期 签字日期 2015-9-14
第 1 页 共 26 页
Firefly-RK3288的GoRK3288项目文档
目 录
1. Go语言简介 ................................................................................................................................. 3 2. RK3288编译环境安装 ................................................................................................................ 3
2.1. 从仓库安装 ..................................................................................................................... 3 2.2. 下载压缩包安装 ............................................................................................................. 4 3. Go_Led ......................................................................................................................................... 5 4. GoRK3288系列教程 ................................................................................................................... 6
4.1. 【GoRK3288】Rockchip RK3288, GO!GO!!GO!!! ..................................................... 6 4.2. 【GoRK3288】Go语法简要说明及GoRK3288结构 .............................................. 10
4.2.1. 操作符: ........................................................................................................... 10 4.2.2. 变量: ............................................................................................................... 10 4.2.3. 返回值: ........................................................................................................... 10 4.2.4. 线程(协程): ............................................................................................... 11 4.2.5. 通道: ............................................................................................................... 11 4.2.6. 流程控制: ....................................................................................................... 11 4.2.7. Go关键字: ..................................................................................................... 11 4.2.8. Go类型: ......................................................................................................... 11 4.2.9. 工程文件: ....................................................................................................... 12 4.3. 【GoRK3288】GPIO操作方法(1) ............................................................................. 12 4.4. 【GoRK3288】GPIO操作方法(2) ............................................................................. 15 4.5. 【GoRK3288】PWM操作方法 .................................................................................. 19 4.6. 【GoRK3288】TSADC操作方法 .............................................................................. 22
4.6.1. 单例模式: ....................................................................................................... 22 4.6.2. 多返回值: ....................................................................................................... 22 4.7. 【GoRK3288】WatchDog操作方法(看门狗)....................................................... 24 5. Firefly-RK3288介绍 .............................................................................................................. 25
第 2 页 共 26 页
Firefly-RK3288的GoRK3288项目文档
Firefly-RK3288的GoRK3288项目
1. Go语言简介
Go语言由Google提供支持,于2007年9月开始浮出水面,出自Rob Pike、 Ken Thomason等大师之手,是一种支持并发和垃圾回收的编译型编程语言。
Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。它既能像Java一样自动管理内存,又像C一样有指针。现在Go语言支持的主流操作系统有Windows、Linux、MacOS X。
如今,Go语言开始被更多的程序员所关注,国内外也开始有了一些以Go语言平台开发的项目。那么是什么样的特性让Go语言吸引如此众多的眼球。下面让我们一起看下Go语言的一些特性:
1. Go语言保留但大幅度简化了指针。原生数值类型的指针类型可按Go语法在类型前
面加上*,比如var p *C.int。而void*比较特殊,用Go中的unsafe.Pointer表示。任何类型的指针值都可以转换为unsafe.Pointer类型,而unsafe.Pointer类型值也可以转换为任意类型的指针值。
2. Go语言支持多参数返回。
3. Goroutine,这个几乎算是Go语言的招牌特性了,我们只要使用一句简单的go就可
以实现类似线程的效果而不需要繁琐的线程操作锁操作,就基本能实现并行程序的效果。十分的简单易上手。
4. Interface,GO语言的Interface是众多使用者所喜欢的特性之一。interface与
struct之间可以相互转换,struct不需要像Java在源码中显示说明实现了某个接口,可以通过约定的形式,隐式的转换到interface。任何数据结构,只要实现interface 所定义的函数,自动就implemen了这个interface。 看了Go语言的简介,大家是不是开始心动了。下面是作者tjCFeng所制作的【GoRK3288】系列教程链接,让我们乘坐上Firefly的木筏,去遨游Golang的海洋吧!
最后再次表示对作者tjCFeng的感谢,正是这种开源的学习精神让我们获得更便捷的学习途径。饮水思源,希望从中有所收获的朋友,不要吝啬你们的经验和感悟,进一步发扬开源的精神。让我们一起GO!GO!!GO!!!
2. RK3288编译环境安装
GitHub地址: https://github.com/golang/go Golong中国地址:http://golangtc.com/download
首先下载Firefly-RK3288_Ubuntu14.04固件并烧写进板子
以下有两种安装方式,建议使用第二种,因为前者安装版本比较低
2.1. 从仓库安装
第 3 页 共 26 页
Firefly-RK3288的GoRK3288项目文档
$ sudo apt-get install golang 如果安装不成功可尝试: $ sudo add-apt-repository ppa:gophers/go $ sudo apt-get update $ sudo apt-get install golang-stable 2.2. 下载压缩包安装
安装gcc工具,因为golang有些功能是使用c写的,所以构建golang的编译是必须的 $ sudo apt-get install bison gawk gcc libc6-dev make 如果安装不成功可以更新后重试 $ sudo apt-get update 下载以及解压: $ cd /home/firefly/ $ wget golangtc.com/static/go/go1.4.2.linux-386.tar.gz $ sudo tar -C /usr/local -xzf go1.4.2.linux-386.tar.gz 进入src安装: $ cd /usr/local/go/src $ sudo ./all.bash 如果all.bash不能运行,修改对应权限后重试 $ chmod a+x all.bash 安装成功最后几行显示: --- Installed Go for linux/arm in /usr/local/go Installed commands in /usr/local/go/bin *** You need to add /usr/local/go/bin to your PATH. 修改配置: $ vi $HOME/.profile 在最后一行加上:
第 4 页 共 26 页
Firefly-RK3288的GoRK3288项目文档
$ export PATH=$PATH:/usr/local/go/bin $ export GOPATH=/home/firefly/go 保存退出 然后使profile生效: $ source $HOME/.profile 检测是否安装成功: $ go version 显示如下: go version go1.4.2 linux/arm 3. Go_Led
下面借用【GoRK3288】系列教程作者tjCFeng一个led例程进行演示 GoRK3288库下载地址:https://github.com/tjCFeng/GoRK3288 安装git(如果已经安装跳过此步) $ sudo apt-get install git 下载GoRK3288库 $ go get github.com/tjCFeng/GoRK3288 构建goled.go文件: $ cd /home/firefly/go $ mkdir src/goled $ vi src/goled/goled.go 输入以下内容: package main import ( \ \) func main() { defer RK3288.FreeRK3288() P8A1, ok := RK3288.CreateGPIO(RK3288.P8, RK3288.A1) if ok {
第 5 页 共 26 页