2021年8月23日 星期一

編譯遇到 error: braces around scalar initializer [-Werror] 的解決方法

首先 braces 中文意思為 "大括號",

而編譯出現這個錯誤訊息時,十之八九問題出在少了對稱的大括號,

因此請仔細檢查一下,是否漏了"{" 或是加錯地方.

2021年8月20日 星期五

當要 export GPIO, 或是使用 gpio_request 遇到 write error: Device or resource busy 的解決方法

 當使用  echo 0 > /sys/class/gpio/export
kernel卻拋出 -sh: echo: write error: Device or resource busy

這表示此GPIO正被某個driver占用,因此你沒辦法申請這個GPIO來使用
而這個問題的解決方法,只能找出是哪個driver code, 做完 gpio_request()之後 卻沒有做 gpio_free()的地方

另外可以使用下面指令來查看那些gpio被占用

cat /sys/kernel/debug/gpio

=======================================================

另外下面記錄一些gpio操作的指令

第一步可以先ls /sys/class/gpio,有的可以從這邊看到gpio的base值 

(例如base=268, gpio0在下面的操作就要echo 268+0, gpio10就會是 268+10)

1. request gpio
echo 0 > /sys/class/gpio/export

2. check dicrection value
cat /sys/class/gpio/gpio0/direction

3. change direction
echo out > /sys/class/gpio/gpio0/direction

4. check output value
cat /sys/class/gpio/gpio0/value

5. change output value to high
echo 1 > /sys/class/gpio/gpio0/value

6. free the gpio
echo 0 > /sys/class/gpio/unexport




Linux Terminal 顯示亂碼

 如果再Linux teminal底下,遇到顯示亂碼的問題,可以用下面的指令解決

$ export LANG=zh_CN.UTF-8