[GoRK3288] 1. Rockchip RK3288, GO! GO !! GO !!!, Gork3288rk3288
Preface:
Recently, I looked at Google's Go language and found that this open-source project is intended to be implemented using golang.
In fact, the driver of the Development Board has implemented various functions, but sometimes it is troublesome to use. You may need to modify the dts file and re-compile the kernel to use a function, therefore, we plan to develop this UIO-driven open-source project to facilitate programming. Of course, UIO is not omnipotent, such as interruptions. At present, I have not found a good method to completely discard the differences in the kernel version, resulting in the need to re-compile the driver to provide interruption messages. By convention, we should first start with the introduction of the Go language and the installation of the development environment, and then briefly explain the Go syntax involved in this project, next, let's take a look at the file composition of the entire project and the usage of each database.
As Rui's Development Reference Manual is generally not open to individuals, tianqi Technology Co., Ltd. (Firefly) has published all the source code and some documents to ensure smooth development, so this open source project is developed based on the Lubuntu environment of Firefly-RK3288 Development Board.
The Go language is the second open-source programming language released by Google 2009. It is specially optimized for the programming of multi-processor system applications, programs compiled using Go can speed up to C or C ++ code. They are more secure and support parallel processes, and can reduce Code complexity without compromising application performance.
Although Go is not yet mature, Google's App Engine and some other products have begun to be written in the go language. The Go website is built with Go. This software is designed for building server software (such as Google's Gmail ). Google believes that Go can also be applied to other fields, including executing software in browsers. It will become the C language in the Internet era.
Go can be compiled as a local native program. The compiled program already includes the Runtime Library. A single file can be directly run on the same platform as other boards during deployment, which is very convenient. At the same time, if you use a project created by Go, You can compile the project on Windows, Linux, and ARM without modifying the features or interfaces that are unique to the operating system, now, Android development is supported (version 1.4). It is expected that the next version will support IOS development. These features are the same as those of Free Pascal.
Go is lacking at present: There is no graphic interface (not officially released), and no dedicated development tools (less on ARM Linux)
With the rise of the Internet of Things technology, using the high concurrency feature of Go to control servers will greatly improve the running performance and simplify development, and can be used as a node to control various peripherals. This node device can even be ARM system, and the more the core performance is higher, so this development uses a high performance Firefly-RK3288 Development Board for development.
When talking about the Firefly-RK3288 Development Board, I have to like it again, the design of this development board is very careful, the arrangement of various components is not crowded, not loose, pleasing to the eye. As for the performance of RK3288, the flat performance tests of the same solution have been very detailed. To learn more about the features of this development board, refer to this evaluation article http://www.eeboard.com/evaluation/firefly-rk3288-review /.
Okay. Let's talk about the Go language compiling environment. Installing Go in Lubuntu is very simple. You can search and install Go in the new mode. However, the version here is a little low, 1.2x. Now 1.4.2 has been released, so it is easy to compile it by yourself, and the performance of this board is very high. It takes about 10 minutes, including all tests.
Download to ghost.
The easiest way to install the SDK is to decompress it to/home/go, enter the src directory, and run all. bash to start automatic compilation. About 10 minutes later, the compilation is completed. Open the. profile file in/home and add it at the end:
Save and restart. The Go environment has been set up.
Next, install a convenient editing environment. Currently, the Go language does not have a dedicated IDE development environment. Generally, LiteIDE, Ecplise, and SublimeText are used on Windows or Linux. However, in the ARM environment, the source version is relatively low, it is difficult to use, so after trying a few tools, we found that gedit and Geany are okay.
Here, we use Geany as an example to install it. Search Geany with the version 1.23. By default, the Go highlight and code auto-completion functions are supported. Few things are installed very quickly
There are only two dependencies, namely the main geany file and geany-common. Click the application to start installation.
After installation, you can open or create a new Go file. The syntax highlight looks comfortable.
Compilation and running are also convenient. Although there is no Debug debugging function or breakpoint setting, it is enough for the time being.
Download the GoRK3288 library at https://github.com/tjcfeng/gork3288.