SylixOS實現了一個功能強大的調試stub(樁),可在設備或模擬器上在線調試應用程序,RealEvo-IDE也提供配套的調試插件。目前RealEvo-IDE既支持自動推送調試、也支持傳統的手動啓動gdbserver的調試方式。在官方公佈的使用手冊中沒有詳細寫出在平常開發中很是實用的幾種調試方式,本文主要介紹一個由底層到應用層的綜合調試方法。算法
綜合案例demo包括三個部分:user_app(應用層)、calc_lib(中間層動態庫)、pwm_driver(底層驅動模塊)。本篇文檔經過介紹應用層對TTY接口(pwm_driver )和calc_lib的調用來全面的展現系統的使用方式。user_app主要是打開PWM設備並調用動態庫中的算法,代碼如程序清單 2‑1所示;calc_lib是一個動態庫,代碼如程序清單 2‑2所示;程序pwm_driver是一個TTY設備接口函數。app
程序清單 2‑1 user_app代碼函數
#include <stdio.h>spa
int main (int argc, char **argv)插件 {調試 int icalc_result;server /*接口 * 打開PWM設備ci */開發 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); }
|
程序清單 2‑2 calc_lib代碼
#include <stdio.h> int lib_func (int ivalue) { int iresult = 0; iresult += 100; return iresult; } |
右擊應用程序,選擇Properties,將動態庫添加至應用程序中並進行關聯,如圖 2‑1所示。
圖 2‑1 添加動態庫
關聯後將user_app(應用層程序)、calc_lib(中間層動態庫)、pwm_driver(底層驅動模塊)部署到模擬器上。
在「 /lib/modules 」下查看驅動模塊是否上傳成功,如圖 2‑2所示。
圖 2‑2 驅動模塊上傳成功
用「modulereg」指令加載驅動模塊,如圖 2‑3所示。
圖 2‑3 加載驅動模塊
運行應用程序,結果如圖 2‑4所示,調用了動態庫中的算法。
圖 2‑4 應用程序運行結果
在SylixOS中可使用多種調試方式進行相關調試,根據實際狀況對程序進行調試,本節主要經過一個完整的工程文件來描述從從應用層到底層的基本使用流程。
《SylixOS應用程序開發手冊》
《RealEvo-IDE使用手冊》