共2条
1/1 1 跳转至页
,VXWORKS,NUCLEUS,keil,for,arm,01a,ccd,13581980230, 一步一步教你调试ARM Linux
问
SldView运行于Windows系统中,支持ucosii、ucLinux、Linux三种嵌入式操作系统的开发。支持从编辑代码、交叉编译、交叉调试的开发全过程,支持Linux内核、驱动、任务级、模块等动态调试,支持内核、驱动、任务、模块等同步调试。
1. 当前嵌入式Linux开发模式
嵌入式系统通常为一个资源受限的系统。直接在嵌入式系统的硬件平台上编写软件比较困难,有时甚至是不可能的。一般流程见图1。目前,一般采用的办法是,先在通用计算机上编写程序,然后,通过交叉编译,生成目标平台上可运行的二进制代码格式,最后下载到目标平台上的特定位置上运行
图1 开发流程 图2开发模式
第一步,建立嵌入式Linux交叉开发环境。目前,常用的交叉开发环境主要有开放和商业两种类型。交叉开发环境是指编译、链接和调试嵌入式应用软件的环境。它与运行嵌入式应用软件的环境有所不同,通常采用宿主机/目标机模式,在宿主机上编写好源代码及相关的配置文件。
第二步,交叉编译和链接。在完成嵌入式软件的编码之后,就是进行编译和链接,以生成可执行代码。由于开发过程大多是在Intel公司x86系列CPU的通用计算机上进行的,而目标环境的处理器芯片却大多为ARM、MIPS、PowerPC、DragonBall等系列的微处理器,这就要求在建立好的交叉开发环境中进行交叉编译和链接。通过编译连接后即可下载的目标机运行。
在嵌入式系统开发中完成编译连接只是开发工作的一小部分,而令广大开发人员头痛的则是下载到目标机进行调试。多数的嵌入式系统开发都是基于操作系统的,而目前大多数集成开发环境都不支持Linux调试,仅有的几种开发平台功能简单却昂贵的费用让大多企业望而却步。
2. SldView集成开发工具的特色
SldView不仅实现目前常用的集成开发环境的开发、调试功能外,还提供了Linux内核、驱动、任务级、模块等动态调试,这是广大开发人员最急切的需要。它完全支持OS内核调试,并可以进行任务级与线程的实时调试。SldView可以对多个任务同时进行跟踪调试,动态检测到任务的启动,然后加载任务的符号表,开发人员就完全控制了任务的运行,并可以在内核态及任务态间自由切换。此外SldView还提供了内存管理、任务绑定、Timer察看、任务Time管理、任务上下文察看等调试功能,极大的方便了开发人员OS调试,使开发效率大幅度提高。
在代码级调试方面SldView也非常优秀。SldView提供图形和命令行两种调试方式并支持软件模拟功能,设计人员可以动态选择程序下载地,全球领先的程序下载速度,最快下载速度可以达到800k/s,尤其适用于用户调试代码量大的程序。强大的断点设置、变量察看、寄存器察看、自定义寄存器察看、板上寄存器察看、函数堆栈显示等功能可以让设计人员掌握程序运行的每一个细节。此外SldView还支持源代码窗口、汇编程序窗口、混合窗口的显示。
SldView集成开发环境界面直观友好,类似于MS Visual Stduio。设计人员可以很方便的创建、配置工程,然后编译、调试程序,也可以直接打开编译好的目标文件来调试。SldView完全支持gcc, ads等编译器生成的目标代码的调试。设计人员可以根据自己的需要制定开发环境,也可以选择试用英文版。
3. 应用实例
3.1 Linux应用程序开发
但由于没有合适的开发环境,Linux应用程序开发效率往往都很低,特别是用户进程的调试非常困难,而SLDView的出现使这些问题得以解决。
使用SLDView的Linux工程向导或其他文件编辑器新建立应用程序源文件和相关配置文件。在SLDView配置好OS,运行config、dep、make命令即可编译Linux,如果没有报错则会生成相关的二进制文件。使用SLDView链接开发板并下载二进制文件,这时就可以调试Linux应用程序了。
SLDView会自动拦截Linux运行过程中的每一个进程,并提示开发人员是否进行调试。例如当开发人员运行应用程序“LCD”时,该进程被SLDView拦截并挂起,如下图:
同时SLDView会提示是否调试该进程:
选择“是”打开相应的.elf文件:
现在就可以像调试普通程序一样调试该进程了。
3.2 设备驱动程序调试
在嵌入式系统开发中,其中很大的工作量都都是为各种设备编写驱动程序,除非不用操作系统而直接控制硬件。对于任何一位内核代码的开发人员来说,最急迫的问题之一就是如何完成调试。在调试工具缺乏和功能不完善的情况下,大多开发人员都选择使用普通的打印调试方法,这样的缺点也是显而易见的:调试效率低、不能完全掌握变量值的变化、特别是在大型循环结构中printk几乎是无法用来调试的。SLDView强大的调试功能可以让驱动程序和OS内核调试象调试普通C程序一样简单。
先编写好驱动程序源代码并加入到OS内核中,使用SLDView重新编译OS。如果没有报错则会生成相应的.elf文件
在SLDView中打开编译好的.elf文件并下载到目标板,定位到编写好的驱动程序设置断点。本例中驱动程序原文件为sc344b0fb.c,设置断点到:
int __init s3c44b0fb_init(void)
这样系统在加载sc344b0fb驱动程序时运行到int __init s3c44b0fb_init(void)函数入口会挂起,开发人员可以单步运行并通过自动变量、自定义变量和寄存器窗口来察看当前程序的运行情况。
4. 结论
SLDView集成开发环境的出现为当前大中型嵌入式系统开发商提供了高效的设计调试平台,降低了操作系统调试难度,提高了开发效率。同时SLDView集成开发环境良好的界面和简单操作也可作为各高等院校教学实验平台及科研机构的首选。
答 1: 网址网址请看:www.jhembed.com 答 2: 大家反映不热烈啊,建华嵌入式Linux系列开发套件大降价,详情见www.jhembed.com,或者致电029-88453251. 答 3: 支持下。 答 4: 大降价是啥概念?以我所知要9k多RMB 答 5: 同比应该是最便宜的东西了。现在送仿真器8880. 答 6: 顶 答 7: 楼主不老实一个仿真器卖那么贵谁敢要啊?搞点便宜的,让大伙支持支持 答 8: 我顶LINUX中国人嵌入式系统不要再用MS的啦,LINUX我顶,我们不能在嵌入式产品这里还要受制于MS啊,让盖次去死吧!哈哈! 答 9: 怎么象盗版的JEDIVIEW啊怎么看就象MICETEK的JEDIVIEW 答 10: 龙兄此言差亦上楼的龙兄莫非是Micetek的托?
是在质疑中国大陆没有公司可以做出嵌入式Linux的集成开发平台吗? 答 11: 有限制板吗?先玩玩... 答 12: jedi-II + jediview(for windows)正版 大约也就是这个价(9k RMB)有没有哪位实际用过这两种环境 , 都给个评价 答 13: 据我所知,楼主卖的配套仿真器是ARMice说出来不是很丢人的事, 瞒着不说就不地道了
答 14: SldView + ARMiceSldView可以连接任何支持rdi协议的仿真器,不光是ARMice仿真器.
不要以为只有台湾佬才能开发出这样的软件而小瞧大陆的公司。
SldView没有任何抄袭linuxview的嫌疑,完全是国内公司自助研发的。
有源代码为证。
SldView的软件界面是采用bcglib库做的,linuxview何尝
是不是也使用bcglib库,也有抄袭外国源代码的嫌疑阿。 答 15: 到底是不是ARMice配套的仿真器到底是不是ARMice ,是的话是ARMice的那个版本?
rdi接口的仿真器都支持 ,那么不要配套仿真器只要软件什么价格?
留个email吧 答 16: 我们五十所买了7套JEDI + JEDIVIEW的我们买了好几套,还可以,据说ARMICE就是MICETEK出去的人做的,是吗
我也不是托,先入为主,而且好象是JEDIVIEW先出来啊,LINUXVIEW没有过,是装在LINUX系统下的吗 答 17: SldView 价格SldView价格可以上www.jhembed.com网站上查看.
也可以电询 029-88453251, 13891913882. 答 18: to 龙兄JediView是不能调试linux的, linuxView可以调试ARM linux.
SldView可以连接Multi-ice进行ARM linux系统的调试. 答 19: 错了吧 to solider
我们买的是JEDIVIEW FOR UCLINUX的,可以调试UCLINUX啊,据说还有JEDIVIEW FOR LINUX的,可以调试LINUX的,就是不知道LINUXVIEW和这二个有什么区别,我认为是装在LINUX系统下的
1. 当前嵌入式Linux开发模式
嵌入式系统通常为一个资源受限的系统。直接在嵌入式系统的硬件平台上编写软件比较困难,有时甚至是不可能的。一般流程见图1。目前,一般采用的办法是,先在通用计算机上编写程序,然后,通过交叉编译,生成目标平台上可运行的二进制代码格式,最后下载到目标平台上的特定位置上运行
图1 开发流程 图2开发模式
第一步,建立嵌入式Linux交叉开发环境。目前,常用的交叉开发环境主要有开放和商业两种类型。交叉开发环境是指编译、链接和调试嵌入式应用软件的环境。它与运行嵌入式应用软件的环境有所不同,通常采用宿主机/目标机模式,在宿主机上编写好源代码及相关的配置文件。
第二步,交叉编译和链接。在完成嵌入式软件的编码之后,就是进行编译和链接,以生成可执行代码。由于开发过程大多是在Intel公司x86系列CPU的通用计算机上进行的,而目标环境的处理器芯片却大多为ARM、MIPS、PowerPC、DragonBall等系列的微处理器,这就要求在建立好的交叉开发环境中进行交叉编译和链接。通过编译连接后即可下载的目标机运行。
在嵌入式系统开发中完成编译连接只是开发工作的一小部分,而令广大开发人员头痛的则是下载到目标机进行调试。多数的嵌入式系统开发都是基于操作系统的,而目前大多数集成开发环境都不支持Linux调试,仅有的几种开发平台功能简单却昂贵的费用让大多企业望而却步。
2. SldView集成开发工具的特色
SldView不仅实现目前常用的集成开发环境的开发、调试功能外,还提供了Linux内核、驱动、任务级、模块等动态调试,这是广大开发人员最急切的需要。它完全支持OS内核调试,并可以进行任务级与线程的实时调试。SldView可以对多个任务同时进行跟踪调试,动态检测到任务的启动,然后加载任务的符号表,开发人员就完全控制了任务的运行,并可以在内核态及任务态间自由切换。此外SldView还提供了内存管理、任务绑定、Timer察看、任务Time管理、任务上下文察看等调试功能,极大的方便了开发人员OS调试,使开发效率大幅度提高。
在代码级调试方面SldView也非常优秀。SldView提供图形和命令行两种调试方式并支持软件模拟功能,设计人员可以动态选择程序下载地,全球领先的程序下载速度,最快下载速度可以达到800k/s,尤其适用于用户调试代码量大的程序。强大的断点设置、变量察看、寄存器察看、自定义寄存器察看、板上寄存器察看、函数堆栈显示等功能可以让设计人员掌握程序运行的每一个细节。此外SldView还支持源代码窗口、汇编程序窗口、混合窗口的显示。
SldView集成开发环境界面直观友好,类似于MS Visual Stduio。设计人员可以很方便的创建、配置工程,然后编译、调试程序,也可以直接打开编译好的目标文件来调试。SldView完全支持gcc, ads等编译器生成的目标代码的调试。设计人员可以根据自己的需要制定开发环境,也可以选择试用英文版。
3. 应用实例
3.1 Linux应用程序开发
但由于没有合适的开发环境,Linux应用程序开发效率往往都很低,特别是用户进程的调试非常困难,而SLDView的出现使这些问题得以解决。
使用SLDView的Linux工程向导或其他文件编辑器新建立应用程序源文件和相关配置文件。在SLDView配置好OS,运行config、dep、make命令即可编译Linux,如果没有报错则会生成相关的二进制文件。使用SLDView链接开发板并下载二进制文件,这时就可以调试Linux应用程序了。
SLDView会自动拦截Linux运行过程中的每一个进程,并提示开发人员是否进行调试。例如当开发人员运行应用程序“LCD”时,该进程被SLDView拦截并挂起,如下图:
同时SLDView会提示是否调试该进程:
选择“是”打开相应的.elf文件:
现在就可以像调试普通程序一样调试该进程了。
3.2 设备驱动程序调试
在嵌入式系统开发中,其中很大的工作量都都是为各种设备编写驱动程序,除非不用操作系统而直接控制硬件。对于任何一位内核代码的开发人员来说,最急迫的问题之一就是如何完成调试。在调试工具缺乏和功能不完善的情况下,大多开发人员都选择使用普通的打印调试方法,这样的缺点也是显而易见的:调试效率低、不能完全掌握变量值的变化、特别是在大型循环结构中printk几乎是无法用来调试的。SLDView强大的调试功能可以让驱动程序和OS内核调试象调试普通C程序一样简单。
先编写好驱动程序源代码并加入到OS内核中,使用SLDView重新编译OS。如果没有报错则会生成相应的.elf文件
在SLDView中打开编译好的.elf文件并下载到目标板,定位到编写好的驱动程序设置断点。本例中驱动程序原文件为sc344b0fb.c,设置断点到:
int __init s3c44b0fb_init(void)
这样系统在加载sc344b0fb驱动程序时运行到int __init s3c44b0fb_init(void)函数入口会挂起,开发人员可以单步运行并通过自动变量、自定义变量和寄存器窗口来察看当前程序的运行情况。
4. 结论
SLDView集成开发环境的出现为当前大中型嵌入式系统开发商提供了高效的设计调试平台,降低了操作系统调试难度,提高了开发效率。同时SLDView集成开发环境良好的界面和简单操作也可作为各高等院校教学实验平台及科研机构的首选。
答 1: 网址网址请看:www.jhembed.com 答 2: 大家反映不热烈啊,建华嵌入式Linux系列开发套件大降价,详情见www.jhembed.com,或者致电029-88453251. 答 3: 支持下。 答 4: 大降价是啥概念?以我所知要9k多RMB 答 5: 同比应该是最便宜的东西了。现在送仿真器8880. 答 6: 顶 答 7: 楼主不老实一个仿真器卖那么贵谁敢要啊?搞点便宜的,让大伙支持支持 答 8: 我顶LINUX中国人嵌入式系统不要再用MS的啦,LINUX我顶,我们不能在嵌入式产品这里还要受制于MS啊,让盖次去死吧!哈哈! 答 9: 怎么象盗版的JEDIVIEW啊怎么看就象MICETEK的JEDIVIEW 答 10: 龙兄此言差亦上楼的龙兄莫非是Micetek的托?
是在质疑中国大陆没有公司可以做出嵌入式Linux的集成开发平台吗? 答 11: 有限制板吗?先玩玩... 答 12: jedi-II + jediview(for windows)正版 大约也就是这个价(9k RMB)有没有哪位实际用过这两种环境 , 都给个评价 答 13: 据我所知,楼主卖的配套仿真器是ARMice说出来不是很丢人的事, 瞒着不说就不地道了
答 14: SldView + ARMiceSldView可以连接任何支持rdi协议的仿真器,不光是ARMice仿真器.
不要以为只有台湾佬才能开发出这样的软件而小瞧大陆的公司。
SldView没有任何抄袭linuxview的嫌疑,完全是国内公司自助研发的。
有源代码为证。
SldView的软件界面是采用bcglib库做的,linuxview何尝
是不是也使用bcglib库,也有抄袭外国源代码的嫌疑阿。 答 15: 到底是不是ARMice配套的仿真器到底是不是ARMice ,是的话是ARMice的那个版本?
rdi接口的仿真器都支持 ,那么不要配套仿真器只要软件什么价格?
留个email吧 答 16: 我们五十所买了7套JEDI + JEDIVIEW的我们买了好几套,还可以,据说ARMICE就是MICETEK出去的人做的,是吗
我也不是托,先入为主,而且好象是JEDIVIEW先出来啊,LINUXVIEW没有过,是装在LINUX系统下的吗 答 17: SldView 价格SldView价格可以上www.jhembed.com网站上查看.
也可以电询 029-88453251, 13891913882. 答 18: to 龙兄JediView是不能调试linux的, linuxView可以调试ARM linux.
SldView可以连接Multi-ice进行ARM linux系统的调试. 答 19: 错了吧 to solider
我们买的是JEDIVIEW FOR UCLINUX的,可以调试UCLINUX啊,据说还有JEDIVIEW FOR LINUX的,可以调试LINUX的,就是不知道LINUXVIEW和这二个有什么区别,我认为是装在LINUX系统下的
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【笔记】生成报错synthdesignERROR被打赏50分 | |
【STM32H7S78-DK评测】LTDC+DMA2D驱动RGBLCD屏幕被打赏50分 | |
【STM32H7S78-DK评测】Coremark基准测试被打赏50分 | |
【STM32H7S78-DK评测】浮点数计算性能测试被打赏50分 | |
【STM32H7S78-DK评测】Execute in place(XIP)模式学习笔记被打赏50分 | |
每周了解几个硬件知识+buckboost电路(五)被打赏10分 | |
【换取逻辑分析仪】RA8 PMU 模块功能寄存器功能说明被打赏20分 | |
野火启明6M5适配SPI被打赏20分 | |
NUCLEO-U083RC学习历程2-串口输出测试被打赏20分 | |
【笔记】STM32CUBEIDE的Noruletomaketarget编译问题被打赏50分 |