注:本文选用树莓派做测试,因为树莓派是基于ARM平台的.
①.、编译工具配置
据说下个版本的golang编译工具要使用golang自己来写,但目前还是使用C编译工具的.所以呢,首先要配置好C编译工具:
安装完成后可以输入 gcc --version命令验证是否成功安装.
golang使用git版本管理工具,也可以使用git获取golang源代码.推荐使用这个方法,因为以后可以随时获取最新的golang源代码.
在终端cd到你想要安装golang的目录,确保该目录下没有名为go的目录.然后以下命令获取代码仓库:
git clone
大陆地区可能会获取失败,在不翻墙的情况下我试了几次都没成功,原因大家都懂的.好在google已经将golang也托管到github上面,所以也可以通过下面命令获取:
主要有GOROOT、GOOS、GOARCH、GOARM四个环境变量需要设置,先解释四个环境变量的意义.
主要代表golang树结构目录的路径,也就是上面git检出的go目录.一般可以不用设置这个环境变量,因为编译的时候默认会以go目录下src子目录中的all.bash脚本运行时的父目录作为GOROOT的值.为了保险起见,可以直接设置为go目录的路径.
分别代表编译的目标系统和平台,可选值如下:
GOOS GOARCH
freebsd arm
linux arm
netbsd arm
需要注意的是这两个值代表的是目标系统和平台,而不是编译源代码的系统和平台.树莓派的RaspBian是linux系统,所以这些GOOS设置为linux,GOARCH设置为arm.
export GOROOT=你的go目录路径
export GOOS=linux
export GOARCH=arm
环境变量配置完成自后就可以开始编译源代码.在go目录下的src子目录中,主要有all.bash和make.bash两个脚本(另外还有两个all.bat和make.bat脚本适用于window平台).编译实际上就是执行其中一个脚本,两者的区别在于all.bash在编译完成后还会执行一些测试套件.如果希望只编译不测试,可以运行make.bash脚本.使用cd命令进入go下src目录,执行./all.bash或者./make.bash命令即可开始编译.由于硬件情况不同,编译耗费的时间不同.在我的B型树莓派编译过程花费了将近半个小时,编译完成后执行的测试套件又花费了差不多一个小时,总共花费了一个半小时左右.
export PATH=$PATH:$GOROOT/bin
保存后同样执行source ~/.bashrc命令让环境变量生效.
至此,golang源代码编译安装成功.执行go version应该就能看到当前golang的版本信息,表示编译安装成功.
树莓派其实是一个小型的linux系统,功能非常强大的,除了python外,C、C◆◆、Java、perl,php、shell等编程语言都能用,连go语言都可以.
选择python是因为可读性强,容易上手,写代码有效率.
可以的.树莓派是为学习计算机编程教育而设计,只有信用卡大小的微型电脑,树莓派可以用go语言写的.Go是Google的RobertGriesemer,RobPike及KenThompson开发的一种静态强类型、编译型语言.
说明:这里笔者使用 gobot框架
官网:
执行下面命令:
命令执行完成后,会生成一个main的二进制文件,那个就是我们的程序
备注:如果你想编译其他版本的树莓程序?修改 GOARM 即可
备注:总结后面有上传脚本 ^?_?^
①请确保你已经连接到树莓派了
执行上传命令:
进入 /home/pi (就是你刚上传的文件路径)
运行它: ./main
good luck!
①上传文件的时候,请注意命令
在前一小节中介绍了点亮第一个LED灯,这里我们准备进阶尝试下,输出第一段PWM波形.(PWM也就是脉宽调制,一种可调占空比的技术,得到的效果就是:如果用示波器测量引脚会发现有方波输出,而且高电平、低电平的时间是可调的.)
这里爪爪熊准备写成一个golang的库,并开源到github上,后续更新将直接更新到github中,如果你有兴趣可以和我联系. github.com/dpawsbear/bear_rpi_go
我在很多的教程中都看到说树莓派的PWM(硬件)只有一个GPIO能够输出,就是 GPIO1 .这可是不小的打击,因为我想使用至少四个 PWM ,还是不死心,想通过硬件手册上找寻蛛丝马迹,看看究竟怎么回事.
根据以上两个图对比可以发现如下规律:
为了验证个人猜想是否正确,这里先直接使用指令的模式,模拟配置下是否能够正常输出.
小节:树莓派具有四路硬件输出PWM能力,但是四路中只能输出两个独立(占空比独立)的PWM,同时四路输出的频率均是恒定的.
因为拿到了手册,这里我想直接操作寄存器的方式进行设置,也是顺便学习下Go语言处理寄存器的过程.首先需要拿到pwm 系列寄存器的基地址,但是翻了一圈手册,发现只有偏移,没有找到基地址.
以下是demo(pwm) 源码
树莓派是为学习计算机编程教育而设计,只有信用卡大小的微型电脑,其系统基于Linux.随着Windows 10 IoT的发布,我们也将可以用上运行Windows的树莓派.
树莓派虽小,但五脏俱全,和普通电脑无异.电脑能做的大部分事情,在树莓派上都能做,而树莓派以其低能耗、移动便携性、GPIO等特性,很多在普通电脑上难以做好的事情,用树莓派却是很适合的.
拓展资料:
树莓派由注册于英国的慈善组织"Raspberry Pi 基金会"开发,Eben-Upton/埃-厄普顿为项目带头人.
树莓派百度百科