SylixOS调试方法详解——综合案例分析

本文详细介绍了如何在SylixOS上进行调试,从调试方法到一个综合案例的逐步解析,涵盖了应用层、动态库calc_lib和驱动模块pwm_driver的调试步骤。通过RealEvo-IDE,用户可以添加动态库,部署应用程序,并加载驱动模块,最终成功运行并调用动态库算法。
摘要由CSDN通过智能技术生成

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设备并调用动态库中的算法,代码如程序清单 2‑1所示;calc_lib是一个动态库,代码如程序清单 2‑2所示;程序pwm_driver是一个TTY设备接口函数。

程序清单  2‑1  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);

}

 

程序清单  2‑2 calc_lib代码

#include <stdio.h>

int lib_func (int ivalue)

{

   int  iresult = 0;

   iresult  += 100;

     return iresult;

}

 

2.2      中间层calc_lib(动态库)调用

右击应用程序,选择Properties,将动态库添加至应用程序中并进行关联,如 2‑1所示。

​                            

 2‑1  添加动态库

关联后将user_app(应用层程序)、calc_lib(中间层动态库)、pwm_driver(底层驱动模块)部署到模拟器上。

2.3      加载驱动模块(pwm_driver

在“ /lib/modules ”下查看驱动模块是否上传成功,如 2‑2所示。


 2‑2  驱动模块上传成功

用“modulereg”指令加载驱动模块,如 2‑3所示。


 2‑3  加载驱动模块

运行应用程序,结果如 2‑4所示,调用了动态库中的算法。


 2‑4  应用程序运行结果

3. 总结

SylixOS中可以使用多种调试方式进行相关调试,根据实际情况对程序进行调试,本节主要通过一个完整的工程文件来描述从从应用层到底层的基本使用流程。

4. 参考资料

SylixOS应用程序开发手册》

RealEvo-IDE使用手册》

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值