1. 程式人生 > >SylixOS調試方法詳解——綜合案例分析

SylixOS調試方法詳解——綜合案例分析

調試 應用

1. SylixOS調試方法介紹

SylixOS實現了一個功能強大的調試stub(樁),可在設備或模擬器上在線調試應用程序,RealEvo-IDE也提供配套的調試插件。目前RealEvo-IDE既支持自動推送調試、也支持傳統的手動啟動gdbserver的調試方式。在官方公布的使用手冊中沒有詳細寫出在日常開發中非常實用的幾種調試方式,本文主要介紹一個由底層到應用層的綜合調試方法。

2. SylixOS綜合案例調試步驟詳解

2.1 綜合案例演示demo

綜合案例demo包括三個部分:user_app(應用層)、calc_lib(中間層動態庫)、pwm_driver(底層驅動模塊)。本篇文檔通過介紹應用層對TTY接口(pwm_driver )和calc_lib的調用來全面的展示系統的使用方式。user_app主要是打開PWM設備並調用動態庫中的算法,代碼如程序清單 21所示;calc_lib是一個動態庫,代碼如程序清單 22所示;程序pwm_driver是一個TTY設備接口函數。

程序清單 21 user_app代碼

#include <stdio.h>

int main (int argc, char **argv)

{

int icalc_result;

/*

* 打開PWM設備

*/

int pwm_fd = open("/dev/pwm/pwm", O_RDWR);

/*

* 打開設置步進速度

*/

ioctl(pwm_fd,1,2);

while (1) {

/*

* 獲取算法結果

*/

icalc_result = lib_func (10);

malloc(100);

/*

* 控制PWM輸出

*/

write(pwm_fd, &icalc_result, sizeof(icalc_result));

sleep(1);

}

return (0);

}

程序清單 22 calc_lib代碼

#include <stdio.h>

int lib_func (int ivalue)

{

int iresult = 0;

iresult += 100;

return iresult;

}

2.2 中間層calc_lib(動態庫)調用

右擊應用程序,選擇Properties,將動態庫添加至應用程序中並進行關聯,如圖 21所示。

技術分享

圖 21 添加動態庫

關聯後將user_app(應用層程序)、calc_lib(中間層動態庫)、pwm_driver(底層驅動模塊)部署到模擬器上。

2.3 加載驅動模塊(pwm_driver)

在“ /lib/modules ”下查看驅動模塊是否上傳成功,如圖 22所示。

技術分享

圖 22 驅動模塊上傳成功

用“modulereg”指令加載驅動模塊,如圖 23所示。

技術分享

圖 23 加載驅動模塊

運行應用程序,結果如圖 24所示,調用了動態庫中的算法。

技術分享

圖 24 應用程序運行結果

3. 總結

在SylixOS中可以使用多種調試方式進行相關調試,根據實際情況對程序進行調試,本節主要通過一個完整的工程文件來描述從從應用層到底層的基本使用流程。

4. 參考資料

《SylixOS應用程序開發手冊》

《RealEvo-IDE使用手冊》


SylixOS調試方法詳解——綜合案例分析