2017年12月12日 星期二

mechacar之7688DUO初次設定

32u4安裝firmata

設定密碼 XXXXXX(MAC末六碼,大寫)(是否統一小寫?TBD)
改 Device Name : mechacarXXXXXX (MAC末六碼,小寫)
設定網路為client
以上兩件事只能一次改一件

ssh root@mechacarXXXXXX.local 登入
以下#為ssh登入後的提示符號,#後的字串為需要輸入的指令
# opkg update
# opkg install unzip
# opkg install wget
# pip install pyMata

參考 https://docs.labs.mediatek.com/resource/linkit-smart-7688/en/tutorials/file-storage/mounting-the-root-fs-on-an-sd-card
轉移root到sd card
# opkg install block-mount kmod-fs-ext4 kmod-usb-storage-extras e2fsprogs fdisk

下載 mechaBYTE 軟體系統
# wget https://github.com/pondahai/MacroByte/archive/master.zip

# unzip master.zip
解開後會出現新資料夾 MacroByte-master/
將當中的 root資料複製到根目錄
# tar -C MacroByte-master/root -cvf - . | tar -C / -xf -

切換目錄到: /www/cgi-bin
# cd /www/cgi-bin

變更檔案屬性
# chmod +x /www/cgi-bin/roverLunar

回到電腦端 瀏覽器 輸入網址:mechacarXXXXXX.local/blockly
測試系統是否正確執行

指令拷貝區:
opkg update
opkg install unzip
opkg install wget
pip install pyMata
opkg install block-mount kmod-fs-ext4 kmod-usb-storage-extras e2fsprogs fdisk
wget https://github.com/pondahai/MacroByte/archive/master.zip
unzip master.zip
tar -C MacroByte-master/root -cvf - . | tar -C / -xf -
chmod +x /www/cgi-bin/roverLunar


用下列積木測試7688DUO上的D13 LED是否閃爍

2017年12月5日 星期二

STM32F103C8T6搭配ST-LINK V2在eclipse環境下開發的設定方法

每隔一段時間我都會試試看eclipse在於嵌入式系統開發方面有什麼進步
這一次找了一片STM32F103的板子
這個板子十分輕巧
48pin TQFP的包裝
板上零件只有3.3V穩壓IC、USB以及石英震盪器
剩下的空間都是接腳
還有一個大大的20pin JTAG


除錯器的部分採用ST-LINK V2

由於ST-LINK V2的連接器與板上的連接器不直接相容
這當中需要四個街腳來做傳輸
我沒有用原廠附上的連接線來接
而是採用萬孔板將線接起

安裝ST原廠驅動

ST-LINK有一個專頁
http://www.st.com/en/development-tools/st-link-v2.html
裡面有相關驅動以及工具程式
先把驅動以及工具程式裝起來
接著用工具程式測試一下ST-LINK與STM32F103之間的聯通是否正常
板子剛買來的時候裡面應該是安裝LED閃爍程式
因此板子一上電板上的LED就會閃爍
如果工具程式順利連通
則可以控制STM32的程式停止與執行

安裝cross compilier

到這裡下載適合的工具鍊組
https://launchpad.net/gcc-arm-embedded/+download
這裡我是根據eclipse外掛內建指定的cross compilier 名稱
gcc-arm-none-eabi
去google的


下載eclipse for C/C++及其外掛

很久沒玩eclipse,現在的eclipse感覺沒什麼變




 安裝好了之後
前往 Help -> Eclipse Marketplace...
在搜尋關鍵字的地方輸入 mcu 按ENTER
搜尋結果會出現一款名為 GNU MCU Eclipse的外掛,安裝它







接著到 Help -> Install New Software...
在Work With的地方下拉選單選擇 GNU MCU Eclipse Plug-in
底下會出現幾組特性選單,勾選
cross arm
cortexm
openocd
stm
這幾組



新增專案與指定編譯器

之後重新啟動eclipse
選擇新增專案 File -> New -> C Project
就可以看到 Project Type -> Executable裡面有新增加的 STM32相關專案模板

選擇STM32F10x專案模板
下一步可以看到一個目標處理器選單
可以挑選目標處理器
這裡選擇預設
下兩步後,會需要選擇編譯工具
這裡可以找到先前安裝的cross compilier
預設在Project Files裡面
在mac則是設定為/usr/local/bin

選擇內建的Builder

在專案欄位右鍵點選專案,選擇Properties
在Properties裡面選擇 C/C++ Build -> Tool Chain Editor
將Current Builder 下拉選擇 CDT Internal Builder

嘗試編譯

選擇工具圖示的槌子槌槌看
看編譯是否成功

安裝openocd.exe

Openocd是用來連線ST-LINK V2的中介程式
原則上參考這裡
https://gnu-mcu-eclipse.github.io/openocd/install/
但是有遇到openocd啟動後閃退
後來去找舊版的openocd.exe

設定除錯

參考
https://community.particle.io/t/tutorial-using-eclipse-st-link-v2-openocd-to-debug/10042
大意:
點選瓢蟲下拉選單選擇Debug Configurations
新增一組GDB OpenOCD Debugging設定
先在Debugger 分頁Execcutable path指定openocd.exe的位置
接著在config option新增一串指令 -f board\sparkcore.cfg
這串指令的用途是參照到外部的一個腳本檔
預設資料夾在openocd的script/boards裡面
windows10對於Program Files資料夾預設是不能更動
需要在資料夾的內容裡面將繼承取消才能夠對這資料夾新增檔案

這個腳本檔內容需要變更如下

# This is a SPARK-CORE board with a single STM32F103MD chip.
source [find interface/stlink-v2.cfg]
set WORKAREASIZE 0x4000
source [find target/stm32f1x.cfg]
# use hardware reset, connect under reset
reset_config none separate

除錯執行

點選瓢蟲按鈕下拉選單,選擇上述新增的設定檔
此時eclipse會切換視窗編排成為除錯格式
並且程式原始碼會反白在main()
這時候就可以點選除錯按鈕了



周邊功能原始碼過濾器
專案樹中 system/src/stm32f1-stdperiph
是周邊功能原始碼
可使用過濾器決定原始碼是否編入
如有功能未用到可列入排除過濾器
避免未用到的程式碼佔用記憶體


2017年11月27日 星期一