文档章节

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

E
 Esc130
发布于 2017/10/25 14:15
字数 652
阅读 11
收藏 0

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使用手册》

 

© 著作权归作者所有

共有 人打赏支持
E
粉丝 0
博文 10
码字总数 8146
作品 0
南京
私信 提问
SylixOS调试方法详解——综合案例分析

1. SylixOS调试方法介绍 SylixOS实现了一个功能强大的调试stub(桩),可在设备或模拟器上在线调试应用程序,RealEvo-IDE也提供配套的调试插件。目前RealEvo-IDE既支持自动推送调试、也支持传...

Esc120
06/26
0
0
SylixOS-IgH系统平台搭建

1.参考手册 下面7个文件存放在本地服务器“\10.9.1.113.研发部9.ExchangeFolder郑磊”路径下 《RealEvo-IDE使用手册》 《SylixOS应用开发手册》 《SylixOSshell用户手册》 《SylixOS-IgH使用...

zhengleich
05/15
0
0
SylixOS调试方法详解——性能分析

1. SylixOS调试方法介绍 SylixOS实现了一个功能强大的调试stub(桩),可在设备或模拟器上在线调试应用程序,RealEvo-IDE也提供配套的调试插件。目前RealEvo-IDE既支持自动推送调试、也支持传...

Esc120
06/26
0
0
SylixOS上EtherCAT实现

1 EtherCAT开源协议栈介绍 目前常见开源的主站代码为RT-LAB开发的SOEM(Simple OpenSource EtherCAT Master)和EtherLab的the IgH EtherCAT® Master,SylixOS对两者都支持。其中IgH作为常用的...

Jackstraw瑞
2017/11/01
0
0
VxWorks驱动移植至SylixOS总结

本文档描述了将VxWorks中的驱动源码快速移植至SylixOS中的方法,使用时需要结合SylixOS中的VxWorks兼容层实现。 1. 驱动注册与初始化 1.1 VxWorks中驱动注册与初始化 1.1.1 初始化函数 VxWo...

zhywxyy
08/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

EOS账户如何工作,我们如何获取eos账号?

EOS账户的工作方式是什么?帐户是存储在区块链中的人类可读名称。它可以由个人或一群人拥有,具体的取决于权限配置。需要一个帐户来将交易转移或推送到区块链。——EOSIO Wiki EOS账户如何工...

笔阁
14分钟前
0
0
iOS面试之@property

https://github.com/acBool/Blogs/blob/master/property/%40property%E4%BB%8B%E7%BB%8D.md @property介绍 相信做过iOS开发的同学都使用过@property,@property翻译过来是属性。在定义一个类...

壹峰
16分钟前
0
0
[springBoot系列]--springBoot注解大全

一、注解(annotations)列表 @SpringBootApplication:包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。其中@ComponentScan让spring Boot扫描到Configuration类并把它加......

Jack088
30分钟前
7
0
tomcat编译超过64k大小的jsp文件报错原因

  今天遇到一个问题,首先是在tomcat中间件上跑的web项目,一个jsp文件,因为代码行数实在是太多了,更新了几个版本之后编译报错了,页面打开都是报500的错误,500的报错,知道http协议返回...

SEOwhywhy
51分钟前
5
0
flutter http 请求客户端

1、pubspec文件管理Flutter应用程序的assets(资源,如图片、package等)。 在pubspec.yaml中,通过网址“https://pub.dartlang.org/packages/http#-installing-tab-”确认版本号后,将http(0...

渣渣曦
51分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部