2023年11月29日星期三

如何編譯Static library & 如何使用 (How to build a static library and share to others using)

這邊簡單寫一個example

====== printf.c ========

#include <stdio.h>
int print_hello()
{
    printf("This is a simple API example\n");
    return 0;

寫好這個API source code之後,先編譯出.o檔

gcc -c printf.c -o printf.o -I.


接著把.o檔,轉成.a檔

ar rcs printf.a printf.o


接著就可以寫一個主程式,去呼叫此API

如何使用此 Static Library,使用下面command編譯,可以產生test_main:

gcc main.c printf.a -o test_main -I.


也可以簡單寫一個 Makefile去做編譯(這邊解說Makefile 一小部分)
這邊是順帶的解說 Makefile語法,最主要還是要介紹,怎麼產生像是 printf.a 的 Static Library

###### Makefile 範例解說 #######

my_target: source_file.c header_file.h

gcc -o $@ $< -I.

$@: 表示目標,也就是 "my_target"

$<: 表示第一個依賴文件

2023年11月16日星期四

mpstat 的source code路徑,Yocto package名稱,與mpstat的用法

mpstat 與 top 指令,都是用來監控 CPU 使用率的工具
mpstat 是 Multiprocessor Statistics 的縮寫,它是 sysstat 這個套件裡面的一個工具

所以當我們要在Yocto裡面開啟這個工具,請記得是開啟 sysstat


如果要使用 mpstat這個工具,也可以用以下的 apt-get指令來安裝

apt-get install sysstat

sysstat 的opensource,我們可以從以下的網站來下載:
https://github.com/sysstat/sysstat


另外簡單介紹一下mpstat的使用方式

直接使用指令 mpstat:



使用指令 mpstat -P ALL 5 2:
參數所代表的意思為
    -P ALL: -P表示要監控哪個CPU,這邊帶入ALL,表示列出所有CPU的狀態
    5: 表示5秒印出一次
    2: 表示印2個回合



2023年11月15日星期三

Yocto Trace bb檔,了解其中參數,與debug的方法

假設在bb檔,或是 bbclass檔案裏面,有一些參數,我們會不知道實際的值
這時候,我們可以用 echo 印檔案的方式,導出到 deploy路徑底下的檔案,例如:

在某個bbclass檔案中,我們想知道, ${D} 與 ${STATE_DIR_FILE_PATH},這兩個參數的數值分別是什麼

此時,我們就可以在bbclass 檔案中加入下面兩行

echo ${D} > ${DEPLOY_DIR_IMAGE}/0001
echo ${STATE_DIR_FILE_PATH} > ${DEPLOY_DIR_IMAGE}/0002

最後我們編譯之後,再回到 Yocto Project 底下的這個路徑:
 build/tmp/deploy/images/你的platform名稱/

可以找到檔案 0001 與 0002
在使用 cat 把 0001 與 0002 的內容印出來,就可以知道參數的實際數值了!

2023年11月14日星期二

申請富邦快樂旅評卡,富邦旅遊不便險

 我之前就有申辦過富邦快樂旅平卡,所以每次要出國申辦旅遊不便險,就很方便
可以依據自己想要投保的金額來選擇,而且不只保自己的,還可以保家人的
以下來介紹一下保旅遊不便險的步驟


如果你沒申辦過快樂旅平卡,你必須先線上申請或臨櫃申請,如下圖:
線上申請網址,請到這個網址: 
https://www.fubon.com/insurance/b2c/content/prod_travel_compare/index.html 

點選下圖的,我要線上申辦 (不過還是需要列印填寫,並回傳資料)
需特別注意的是,雖然聲稱只需一個小時就可以辦妥旅平險,但申辦旅平卡,需要7個工作天







另外也可以依照富邦網站介紹的至臨櫃辦理,










當你有了富邦旅平卡之後,就可以開始申請旅平險
也是從這個網站的下圖,開始申請











Step1:
首先會需要填寫,你要保幾天的保險,計算方式說明如下:
*投保單位,以一天為單位

投保日期計算,舉個例子:
假設我的班機時間如下
2024/01/17 16:55 (台灣出發到日本)  ~    2024/01/23 9:00 (日本到台灣)

旅遊地區: 日本
因此可以投保 2024/1/17 16:00 ~ 2024/1/23 16:00  ,  共六天








Step2:
選擇大人投保金額,我是選擇100萬方案,詳細內容如下,可以接著點選套用到其他親屬:
















Step3:
小孩的投保方案,會自動被帶出最適合的,內容如下:














Step4:
2大2小,六天的總共保額,$912







Step5:
接著就下一步,可以選擇電子保單,或是紙本,然後可以直接線上信用卡付款
最後看到以下畫面就完成了!






2023年11月9日星期四

GPIO input high,遇到分壓的問題,基本電路,分壓的概念圖

 今天在做GPIO High/Low的測試,

我有個gpio input mode,我在電路板上面找一個1.8V電壓,外接一條電線
要用這個1.8V去讓GPIO偵測為 input high

硬體工程師說,最好在 GPIO PIN的前面,加入一個電阻,避免電流過大燒壞這個GPIO PIN

加入了之後,我用1.8V去碰觸這個 GPIO,從軟體端印出GPIO狀態,卻沒有被拉High

硬體工程師查了原因,可能因為是在1.8V的路上,有一個電阻
在GPIO PIN的前面,我們又加了一個電阻,造成分壓的情況,
導致電壓值沒有超過 GPIO PIN 所需要的上拉電壓值 (此數值需要看 GPIO Spec,這裡為1.3V)

分壓概念圖,大致如下:











另外分享一個分壓的計算網站,帶入你的每個電阻阻值,可以幫你算分壓

https://www.digikey.tw/zh/resources/conversion-calculators/conversion-calculator-voltage-divider










2023年11月5日星期日

解決 google blog 無法被搜尋的問題,關於sitemap

 之前一直從 google search console  要去解決無法被搜尋的問題

總是卡在 sitemap 的問題上,我在新增Sitemap 的部分,輸入我的blog 網址之後 ,點選提交,如下圖:





但審核總是有問題,大概的問題如下所示:







結果我發現,其實在新增Sitemap的時候,似乎要輸入 URL+"Sitemap.xml" 就可以成功,如下:
https://gigidandan.blogspot.com/sitemap.xml

後來我就可以看到,提交成功,還可以看到索引的網站個數:







我只能說,如果你們搜尋到我的這篇文章的話,就表示我這個修改方法成功了!

:D

Linux 更改 Mac Address 指令

 #先把ethernet0 停用
ifconfig eth0 down

#更改MAC Address
ifconfig eth0 hw ether AA:BB:CC:DD:EE:FF

#啟用ethernet0
ifconfig eth0 up


#最後在使用ifconfig 檢查
ifconfig

使用 lsblk 印出 emmc 每個 partition的"名字"與"size"

使用以下的command可以印出 eMMC的 partition資訊 lsblk --bytes --output name,partlabel,size   參數說明 --bytes: partition的大小,以byte的方式輸出 --output: 後面可以指定要輸出的內容...