ESP8266 painlessMesh 編譯失敗環境修正

painlessMesh 主要依賴這四個library

其中需要注意的是,ArduinoJson需使用5.X的版本。
並且若需使用ARDUINO_ESP8266_RELEASE_2_5_0這個版本的話
需要修正painlessMeshSTA.cpp的一個function

如此即可順利編譯成功!

 

Ubuntu Cross Compile golang for ARM

首先 安裝相關GCC套件

安裝完成後 即可輸入指令Compile

Hi3518 kernel compile常見問題集 (一)

前情提要
透過frp協定直接實作p2p ipcam,但是hi3518原始的memory太小,使用frp時報錯

Runtime error: Out of Memory

好,沒關係,linux 有一swapon功能可以把sd卡作為延伸的memory

swapon: function not implemented

可…可惡,沒關係,我還可以重新燒kernel

正文:
因為只要重新編譯kernel,所以這裡只說明單獨編譯kernel的
採用arm-hisiv100nptl-linux工具編譯kernel:

將swap啟用

儲存新的設定檔

 

編譯成功即可在arch/arm/boot/中看到uImage

以下是錯誤處理

一、編譯kernel報錯處理

在\Hi3518_SDK_VX.X.XX\osdrv\kernel\linux-3.0.y\kernel\timeconst.pl中的第373行
將 defined(@val) 改成 @val

二、編譯busybox報錯處理(編譯osdrv才需要,單獨編譯kernel不需要)

在\Hi3518_SDK_VX.X.XX\osdrv\busybox-x.xx.x\makefile中
將 config %config:scripts_basic outputmakefile FORCE 改成 %config:scripts_basic outputmakefile FORCE
將 /%/:prepare scripts FORCE 改成 %/:prepare scripts FORCE

Ubuntu Cross Compile Go-lang for Linkit 7688

輕輕鬆鬆,Go 真方便。

好,問題又來了,要編譯有cgo的go檔案時,需要將相對應的gcc安裝好並且設定編譯成static
因此首先,需要在自己的Ubuntu環境內先安裝相對應的gcc工具

安裝好後,即可下指令compile你含有cgo的程式了,
這邊我是compile go sqlite3的example

 

 

Linkit 7688 裝置frp client&開機運行

首先 下載Linkit 7688 能用的執行檔 並且解壓縮後利用scp 傳至7688內
https://github.com/fatedier/frp/releases
7688用的是mipsle的版本。

完成後 配置frpc.ini
啟動測試

配置開機自啟動
需要先安裝screen

配置好後 rc.local裡面會長這樣

這時就可以reboot測試

有跳出frpc的log的話,表示開機運行成功!

參考資料:

OpenWrt 使用 frp 实现内网穿透


https://github.com/fatedier/frp

nRF51822開發筆記(2):安裝Arduino開發環境

因為

mbed跟Arduino,都是算不錯好上手簡單開發的工具。
但是用習慣Arduino語法的我們,還是覺得使用Arduino開發比較簡單。
且有許多熟悉的Library可以直接使用,方便許多。
所以這邊來講裝Arduino的流程。

安裝環境

Ubuntu 16.04
我就假設已經你們自己都裝好Arduino IDE了。
依照arduino-nRF5所述步驟
首先就先安裝Ubuntu相關所需套件

開始安裝Arduino的部份吧
進IDE後–>檔案–>偏好設定–>額外的開發板管理員網址

在工具—>開發板最上方有個開發板管理員,點選進入。
搜尋nRF5 即可找到剛剛我們加入的開發板,點選安裝。
安裝完成後,即可到開發板區域選擇nRF51
這邊還有一點 要用藍芽功能的話
可以選擇S130 SoftDevice or S132 SoftDevice
功能我也還沒看,有興趣可以自己去看原廠Paper
要安裝SoftDevice的話 要Follow以下步驟

  • 重開Arudino IDE
  • 選擇開發板-我自己的是WaveShare BLE400
  • SoftDevice S130
  • 燒錄器 CMSIS-DAP
  • 工具 -> nRF5 Flash SoftDevice

但在這邊燒錄SoftDevice時出了點問題,以下是吐出來的錯誤訊息

這邊是出在權限不足的問題,因此要把Arduino用su的身份執行。

不過,先用上一篇編譯好的OpenOCD做燒錄試試看吧,參考他吐出來的指令下。

這邊要解決OpenOCD的燒錄問題有兩個方法

  1. 使用Root權限開啟Arduino IDE
  2. 使CMSIS-DAP使用時不須Root

這邊選擇第二個方案,因為我不只會在Arduino IDE內開發,也在Eclipse內。
StackOverFlow尋找到解法

可以透過Arduino成功燒錄了!

安裝好SoftDevice之後,還需要安裝一個BLE的Library,不然會開發的很痛苦。

  • 在Arduino-IDE內,選擇管理程式庫
  • 搜尋BLEPeripheral,並安裝。

此時就可以著手開發藍芽了~

nRF51822開發筆記(1):安裝OpenOCD & CMSIS-DAP驅動

前言

在開發nRF51822前,當然要佈置他的開發環境
沒有錢買Keil C的我,只能用open source的東西自己架
安裝環境:Ubuntu 16.04

首先

要先檢查相關工具的版本

為了要可以支援CMSIS-DAP這個Open Source的燒錄器,需要安裝HID library和相關Library。

之後去clone OpenOCD&開始編譯

安裝好之後 就可以透過openOCD上傳第一支LED閃爍的程式測試了

成功的話,會跑出以下字串

這時候就可以透過mbed先編譯一個 LED Blinky,下載Hex測試。

LED若是開始閃爍,代表成功!