SylixOS 驱动调试软件使用说明

1.适用范围

本文档适用于使用SylixOS进行驱动模块开发的客户人员和技术工程师。

2.工作准备

BSP驱动开发软件;

CAN驱动模块代码;

CAN应用程序测试代码。

3.原理概述

翼辉BSP驱动开发软件是一种用于调试驱动程序的软件库,它通过替换系统IO接口,利用软件库内的中间线程做中转,将内核态的驱动程序构建为用户态,使驱动程序的调试如普通应用程序一样简单。

4.使用说明

下面以AM4378板卡的CAN设备驱动为例,说明BSP驱动开发软件的使用过程。使用步骤如下:

4.1构建用户态驱动工程

1.在RealEvo-IDE下创建APP工程(can_debug),创建过程请参考《RealEvo-IDE使用手册》第2.4章节——创建SylixOS APP工程。

2.创建成功后,将CAN设备驱动代码拷贝至APP工程内,并将驱动模块的moudle_init函数替换为应用程序的main函数,其它代码不变。替换结果如程序清单4. 1所。

程序清单4. 1 APP工程替换结果

int main (int argc, char **argv)
{
    printf("Hello SylixOS!\n");

    /*
     * 打开 CAN0 还是 CAN1 的总线驱动,是在 bspboard.h 中配置
     */
    CAN_CHAN *pcanchan = LW_NULL;
    pcanchan = __canChanCreate(0);
    /* 对应 CAN0 设备 */
    canDevCreate("/dev/can0", pcanchan, 128, 128);

    return (0);
}

4.2替换系统注册接口

1.将CAN驱动代码中的系统注册接口替换为驱动调试库内相应的接口,CAN驱动需要向系统注册设备和注册CAN中断服务函数,因此替换结果如图4.1所示。

图4.1 替换CAN系统注册接口

替换规则是将需要替换函数的前面加上"debug"字符串,其他驱动代码也是相同规则。

2 .然后在APP程序内添加对应的函数声明,并进行编译,CAN驱动需要的函数声明如程序清单4. 2所示。

程序清单4. 2 函数声明

extern INT32 debugcanDevCreate(PCHAR pcName,
CAN_CHAN *pcanchan,
UINT uiRdFrameSize,
UINT uiWrtFrameSize);
extern ULONG debugAPI_InterVectorConnect (ULONG ulVector,
                                          POVID pvArg,
                                          CPCHAR pcName);

4.3部署调试库和用户态驱动工程

将已有的调试库文件(libIoDevDebug.so)和编译好的APP程序下载到目标板卡上,下载步骤为:

1
.使用RealEvo-IDE的一键部署功能实现库文件下载,右键驱动调试库(IoDevDebug)工程,选择菜单"Properties"打开工程属性页,选择"SylixoS
Project→Device Setting"选项卡,可查看和更改部署配置。如图4.2所示。

图4.2 工程部署设置

1. 在"Device Name"栏里设置与目标板卡一致的IP地址。

2. 可以在"Upload Setting"栏目里设置库文件的本地路径和将要下载到目标板卡的远端路径,库文件需要下载至目标板的"/lib/"目录内,选择默认配置即可。

3. 依次点击"Apply"和"OK"按钮设置成功。

4. 设置完成后,右键库文件工程,选择菜单" SylixOS→Upload"部署。部署成功后,会在目标板的"/lib/"目录下看到libIoDevDebug.so文件

5. 部署APP程序与部署库文件类似,只需将右击库文件工程替换成右击APP工程即可。部署成功后,会在目标板的"/apps/"目录下看到can_dbeug目录。

4.4 APP工程添加动态链接库

APP工程需要添加调试库的路径,调试时才能够找到调试库中提供的接口,添加步骤如下:

1. 右击APP工程(can_debug),选择菜单" Properties",在弹出窗口上点击" SylixOS Project"下的"
Linker Setting",在工作空间中选择要添加的库文件(libIoDevDebug.so),如图4.3所示。

图4.3 添加动态库设置

1.添加完成后,在" Library Path"选项卡下可以看到已经加入了库文件路径,需要注意的是不能添加"strip/"目录下的libIoDevDebug.so文件,因为"strip/"目录下的文件不带调试信息。

4.5 调试选项配置

调试选项配置步骤如下:

1. 右击APP工程(can_debug),选择菜单"Debug As→Debug Configurations",在弹出的窗口中进行以如图4.4所示操作来新建一个调试项目。

图4.4 新建调试项目

2. 点击Debugger选项卡,设置添加动态库路径,如图4.5所示。

图4.5 添加动态库路径

动态库路径是在4.4小节中配置的,此处无法修改,选择默认即可。

3.配置完成后点击Debug按钮即可进入调试界面(确保AM4378板卡正在运行SylixOS)。

4.6 驱动程序调试

4.6.1 调试main函数

点击"Debug"按钮后的调试界面如下所示。图4.6可以看出程序已经进入到CAN设备初始化函数(main函数)、并且可以使用单步执行、进入执行、全速运行等功能。

图4.6 调试main函数

4.6.2调试系统IO接口和中断服务程序

1. 在__canIoCtl函数内设置断点,该函数在打开CAN设备时会被调用。

2. 在__canIsr函数内设置断点,该函数是CAN设备中断服务函数。

设置断点位置如图4.7所示。

图4.7 设置断点位置

3. 点击RealEvo-IDE菜单栏下的(Resume)按钮使程序全速运行,运行结束后CAN设备注册成功,可以在目标板的shell命令行内使用"devs"命令查看到CAN0设备节点。

4. 执行CAN测试程序,该测试程序会打开CAN0设备,并发送数据产生中断,在执行的过程中,可以发现程序停在了刚刚设置断点的位置。如图4.8所示。

图4.8 打开函数断点位置

5. 继续运行,可以看到程序会停在中断服务程序内,如图4.9所示。

图4.9 中断服务程序断点位置

5. 总结

通过上面的测试可以说明,BSP驱动开发软件可以实现对驱动模块的调试,并可以调试中断服务程序,用户态的驱动调试结果最终可以回归到内核态相应的调用位置,以维持系统驱动的功能完整性。

原文地址:http://blog.51cto.com/11624185/2062847

时间: 2024-08-28 15:14:24

SylixOS 驱动调试软件使用说明的相关文章

WIBU-KEY加密狗驱动软件使用说明

目录 1.应用程序WIBU-KEY的安装和启动 2.WIBU-KEY的应用 3.加密解锁 a.解锁申请文件RTC文件的生成 b.解锁文件RTU文件的使用 4.网络版的设定 a.网络服务器启动 b.网络版服务器的设定 c.客户端的设定 注:请首先确认所使用电脑USB接口是否能够正常工作,已确保Lantek软件的硬件加密狗能够正常使用! 1.应用程序WIBU-KEY的安装和启动 正常情况下Wibu-key应用程序会随着软件自动安装以及加密狗的驱动程序. 若Wibu-KEY的没有正确被安装,我们可以通

android 电容屏(二):驱动调试之基本概念篇

关键词:android  电容屏 tp 工作队列 中断 多点触摸协议平台信息:内核:linux2.6/linux3.0系统:android/android4.0 平台:S5PV310(samsung exynos 4210)  作者:xubin341719(欢迎转载,请注明作者) 参考网站:http://edsionte.com/techblog/archives/1582这部分参考别人的多一点 android 电容屏(一):电容屏基本原理篇 android 电容屏(二):驱动调试之基本概念篇

设备驱动调试和移植的一般方法

做linux底层软件工作也有两年了,算上研究生时期对底层软件的研究,加起来也快四年了.慢慢地发现有必要总结一些一般性的方法了.因为一般性的方法有宏观上的指导意义,以后调试和移植驱动时,经常性地回味这些一般性的方法可以防止自己犯同样的错误,进而少走弯路,以最高的效率完成工作. 当谈到底层软件,我们一般都会想到bootloader.BSP.device driver.linux kernel等等.这篇文章将会着重介绍linux device driver调试的一般性方法.另外,关于设备驱动移植的方法

[windows驱动]windows8.1驱动调试前戏

人们都说在干正事之前,得先做足前戏才会爽,我一直很认同这个观点,下面我来总结下进行windows8.1的WDK调试所要做的准备工作. 软件安装: 1.VS2013. 2.WDK8.1 3.Windows Kits安装目录下的8.1\Romote\x86(x64)\wdk Test Target Setup x86-x86_en-us.exe(远程调试使用) 调试环境设置: 安装WDK8.1之后,驱动开发.部署.调试等工具都集成到VS2013 IDE中了,在进行调试之前,我们需要对开发环境做必要的

软件使用说明

软件使用说明:我们的软件是一款基于在校女大学生的记账软件,根据调查身边的女生,统计出了大部分的女生每个月开销的分类.在我们的软件中按这些分类记录每个人的每天的开销,根据调查结果显示有部分学生还有收入,所以我们的记账软件还增加了收入项.我们软件可以根据你每天输入的开销来计算你每个月的开销,并且你可以在其中设置每个月开销的额度,根据你的开销对你的花销进行提醒.在每天你也可以收到关于你这一天开销的提醒,比如:提醒你录入,提醒你今天的花费是否超标.

Windows7驱动调试小Tips

v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);}/* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colb

Linux驱动设计—— 驱动调试技术

参考博客与书籍: <Linux设备驱动开发详解> <Linux设备驱动程序> http://blog.chinaunix.net/uid-24219701-id-2884942.html 对于驱动程序设计来说,核心问题之一就是如何完成调试.当前常用的驱动调试技术可分为: 1. 打印调试 printk 重定向控制台消息 消息记录 开启和关闭消息速度限制 打印设备编号 2. 调试器调试 gdb kdb内核调试器 kgdb补丁 3. 查询调试 使用/proc文件系统 ioctl方法 4.

http加速软件使用说明

HTTP加速软件使用说明 http加速软件使用于卫星链路,在卫星链路时延高的情况下提高http的传输速率 1.1 软件包依赖 (1)squid-3.4.5.tar.gz (2)trafficserver-5.3.0.tar.gz (3)libecap-1.0.0.tar.gz (4)prefetched.tar.gz (5)extract.sh (6)setup_precompile (7)squid-ecap-zip.tar.gz (8)squid.conf (9)ecap_adapter_p

linux设备驱动第四篇:驱动调试方法

linux设备驱动第四篇:驱动调试方法linux设备驱动第四篇:驱动调试方法linux设备驱动第四篇:驱动调试方法linux设备驱动第四篇:驱动调试方法linux设备驱动第四篇:驱动调试方法linux设备驱动第四篇:驱动调试方法linux设备驱动第四篇:驱动调试方法linux设备驱动第四篇:驱动调试方法linux设备驱动第四篇:驱动调试方法 http://v.17173.com/playlist_18716517.htmlhttp://v.17173.com/playlist_18716521.