slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
KIDE 使用培训 PowerPoint Presentation
Download Presentation
KIDE 使用培训

Loading in 2 Seconds...

play fullscreen
1 / 62

KIDE 使用培训 - PowerPoint PPT Presentation


  • 237 Views
  • Uploaded on

KIDE 使用培训. 成研所操作系统团队. 安装 KIDE 搭建 Linux 虚拟机环境 开发 LSP 工程 开发 Downloadable 工程 开发 Bootable 工程 调试工程. 目录. 许可协议. 欢迎界面. 安装前卸载. 选择安装组件. 重启计算机. 选择安装路径. d:\Embsys1.2. 安装 KIDE. 安装 KIDE. Step1 双击安装图标进入 KIDE 安装程序 Step2 欢迎界面:可以查看安装版本 Step3 许可协议:阅读后 “ 同意 ” Step4 先卸载,后安装 , 尽量这样。

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'KIDE 使用培训' - thanos


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

KIDE使用培训

成研所操作系统团队

slide2
安装KIDE

搭建Linux虚拟机环境

开发LSP工程

开发Downloadable工程

开发Bootable工程

调试工程

目录

slide3

许可协议

欢迎界面

安装前卸载

选择安装组件

重启计算机

选择安装路径

d:\Embsys1.2

安装KIDE
slide4
安装KIDE
  • Step1 双击安装图标进入KIDE安装程序
  • Step2 欢迎界面:可以查看安装版本
  • Step3 许可协议:阅读后“同意”
  • Step4 先卸载,后安装,尽量这样。
  • Step5 选择安装组件,可选组件是4种CPU体 系和标准Linux内核,其他务必安装。
  • Step6 选择安装路径,开始安装
  • Step7 重启计算机(一般不需要)
slide5

重启计算机

选择卸载位置

选择卸载组件

开始卸载

卸载KIDE
slide6
卸载KIDE
  • Step1 点击图标进入卸载程序。
  • Step2 卸载向导,点“下一步”
  • Step3 选择卸载组件,选择不要的CPU体系或内核版本。注意取消“卸载全部文件”。
  • Step4 选择卸载位置,一般按默认。
  • Step5 开始卸载
  • Step6 重启计算机(一般不需要)
slide7
进入KIDE
  • 点桌面图标
  • 选择工作空间,KIDE默认在此空间下放置所有用户工程。
slide8
KIDE目录结构
  • HOST目录
    • ide:集成开发环境目录
  • Target
    • bsp:LSP模板目录
    • include:KLinux所需的头文件
    • kernel-version:内核源码
    • tools:一些KIDE需要的工具软件
    • workspace:用户工程目录
  • DOC目录
slide9

host

cygwin

ide

调试器

debugger

eclipse

主程序

tools chain

用户文档

doc

存放 LSP模板,可添加

bsp

KLinux2.0

board1/2/3…

KLibc

成研所维护

include

Linux2.4.20

KTH

TDAgent

kernel version

KLinux2.0

Linux-2.4.20

anaelf

符号表生成工具

fakesym

tools

phrase

makefile工具

target

workspace

目标端文件

KIDE目录结构

主机端文件

交叉编译工具链

Embsys1.2

slide11
C/C++透视图
  • 工程视图
    • 管理工程、文件、内核配置
  • 编辑窗口
    • 编辑时代码录入
  • 大纲视图
    • 函数、声明间快速跳转
  • 目标视图
    • 目标机连接
    • 模块下载
  • 杂项视图
    • 问题查看(所有KIDE错误)
    • 控制台信息(编译命令)
    • 工程属性
slide13
调试透视图
  • 调试视图
    • 启动、关闭调试进程
    • 调试状态切换
    • Attach、Detach
    • 堆栈查看
    • 恢复进程运行
  • 查看视图
    • 断点查看
    • 变量查看修改
    • 表达式查看
    • 寄存器查看修改
    • 内存查看
    • 反汇编查看
slide14
调试透视图
  • 编辑窗口
    • 设置断点
    • 修改代码
  • 大纲视图
    • (同C/C++透视图)
  • 目标视图
    • (同C/C++透视图)
  • 杂项视图
    • 控制台信息(调试代理)
slide15
安装KIDE

搭建Linux虚拟机环境

开发LSP工程

开发Downloadable工程

开发Bootable工程

调试工程

目录

slide16
需要的资源
  • VMware5.5.0
    • Linux虚拟机:
    • DHCP服务
  • tftpd32
    • TFTP服务
  • 必要的文件
    • bzImage
    • initrd.img
    • pxelinux.0
    • default
slide17
搭建虚拟机
  • 安装VMware5.5.0
    • 按默认安装
  • 新建虚拟机
    • 按照后面图片
  • 启动DHCP服务
    • 按照后面图片
  • tftp客户端配置
    • 添加tftp服务器地址
    • 添加远程网络引导程序名
slide18

配置网卡(需要按下页先配置DHCP)

按图上选择

点此处新建虚拟机

记住虚拟机文件的路径

选host-only模式

选择VMnet1为主机

双击Ethernet

搭建虚拟机
slide19

关闭自动桥接

选择此处配置DHCP

设置VMnet8为NAT设备

保证DHCP里只有VMnet1,移除其他虚拟网络

为VMnet1配置子网掩码

点此处选择VMnet1和VMnet8作主机,之后点应用,以后每1个改动都点应用

确保此处为started

启动DHCP服务
slide20

修改此路径的配置文件

在加框位置添加这两行代码

tftp客户端配置

重启虚拟机

slide21

映像文件

远程引导程序

tftpd32配置文件

主程序

启动tftp服务
  • 获取tftpd32和配置文件
  • 将文件放入目录
slide22

选择我们新建的路径

DHCP已由虚拟机启动,关闭此项

点此处设置

选择前面配置的IP

启动tftp服务
  • 配置tftpd32

重启tftpd32,挂起

slide23
测试环境
  • 可以ping通目标板
  • 可以进入KShell的命令行提示符
slide24
常见问题
  • 刚启动虚拟机时DHCP那过不了
    • 查看VMware网络配置里,DHCP是否被stopped
  • 提示找不到映像文件
    • 查看\tftpboot目录里,是否有bzImage
    • 查看\tftpboot\pxelinux.cfg目录下,default文件里是否指定了bzImage
  • 提示找不到根文件系统
    • 查看\tftpboot目录里,是否有initrd.img。有可能为其他名字,请修改与default文件里一致。
slide25
安装KIDE

搭建Linux虚拟机环境

开发LSP工程

开发Downloadable工程

开发Bootable工程

调试工程

目录

slide26
LSP工程概念
  • LSP = Linux Support Package
  • 针对Linux嵌入式开发,KIDE增加了一种LSP工程类型,专为开发LSP使用
    • 稳定性
    • 二次开发
    • 方便应用开发。

What's LSP?

slide27
LSP工程概念
  • 新建的LSP
    • 选定CPU体系的内核代码
    • 驱动代码
    • 各级Makefile
  • 构建后的LSP
    • 内核映像
    • LSP库
    • 符号表文件
slide28

按默认

名字中不能有空格、()号、标点

LSP模板,本图是虚拟机专用

选LSP项目

编译工具链按默认

新建LSP工程
slide29

LSP工程默认关闭内核调试

空格键选择

退出时记得保存设置

此项选择网口/串口连接方式

除这4项目外,都和标准Linux一致。根据硬件特征配置

内核调试必须修改此项内容

按图上设置

Enter键选择

配置内核
slide30

此文件保存前面的配置信息

配置内核

某些子选项需要Enable父选项才出现

slide31
编译构建
  • 编译:对单个源文件,检查语法正确性
  • 构建:编译链接所有文件,makefile由KIDE自动生成。
  • 重构:已经构建好的工程,构建选项有改变,或者内核重新配置了,需要重构。
  • 清理:将工程还原到构建前的状态,删除构建生成的一系列文件(.d、.o、.out、.img)
slide32

内核映像

符号表文件

构建生成的目录

编译构建
  • 构建工程
slide33
建立调试
  • 建立连接
    • Step1 将生成的bzImage拷贝到\tftpboot目录
    • Step2 启动tftpd32和虚拟机
    • Step3 进入KShell,输入ifconfig查看IP,如 192.168.1.56
    • Step4 在目标视图新建调试目标
slide34

只能用串行线的情况

网线连接方式,本例采用它

本次培训用例都选这种方式连接

建立调试
  • 新建调试目标
slide35
建立调试
  • KIDE的调试类型
    • 内核态调试---KLinux工程、内核态工程
      • 内核任务级调试:只对某个进程运行控制
      • 内核系统级调试:对整个系统运行控制
    • 用户态调试---用户态工程
  • 建立调试配置的目的
    • 选择调试类型
    • 选择符号表文件
    • 选择目标板(可能有多个)
slide36

从新建的目标机中选择一个

单击此处选择对应工程的符号表

本例用任务级调试,双击新建,取名为LSP2

主菜单->运行->调试

设置好后点“调试”

建立调试
  • 建立调试配置

建立调试配置

slide37

第1次建立调试配置按前面步骤启动,以后点此图标启动调试第1次建立调试配置按前面步骤启动,以后点此图标启动调试

启动成功!进程列表出现

下拉菜单中,这些都是建好的调试配置,选择一个我们需要的

由C/C++透视图启动时,会自动提示切换到调试透视图

建立调试
  • 启动调试
slide38
安装KIDE

搭建Linux虚拟机环境

开发LSP工程

开发Downloadable工程

开发Bootable工程

调试工程

目录

downloadable
Downloadable工程概念
  • Downloadable工程
    • 仅有应用程序部分
    • 通常在开发阶段使用
    • 生成 .out 可执行文件
    • 体积小、编译速度快,调试方便。
    • 模块方式动态加载
downloadable1

新建文件

编码

构建工程

建立目标连接

启动虚拟机

下载模块

建立调试配置

调试

重构

修改代码

卸载模块

Downloadable工程开发流程

新建工程

重复直到调试OK

downloadable2
新建Downloadable工程

与LSP工程唯一不同之处在于这里不用选LSP模板

slide42

参数赋值

根据自己所写代码,选择需要的函数,将其作为一个任务创建于线程表中

函数名

建立调试
  • 下载模块
    • 条件1:调试代理处于闲置状态
    • 条件2:目标连接采用的KLinux模式
  • 卸载模块
    • 条件:被调试的模块已被终止
  • 启动调试
slide43

先前建好的目标板

手动选择.out

一种方式是在目标视图下载

Downlable工程生成的.out文件

.out自动选好(推荐)

一种方式是对Downloadable工程名点右键

建立调试
  • 下载模块
slide45
安装KIDE

搭建Linux虚拟机环境

开发LSP工程

开发Downloadable工程

开发Bootable工程

调试工程

目录

bootable
Bootable工程概念
  • 主要运用于上层应用开发
  • 适合开发最终的Release版本
  • 与LSP工程或LSP lib关联
  • 关联后大大加快了工程的编译、构建速度。
  • 构建生成的映像文件包含了LSP和应用两部分。
bootable1
新建Bootable工程

两种方式是等效的,但lib方式新建工程时较快,推荐使用!

slide48
工程属性
  • 开发版的构建选项(KIDE默认)
    • 调试选项: –g 开启
    • 代码优化:无
  • Release版的构建选项
    • 调试选项: -g 关闭
    • 代码优化: -O2
slide49

开发版本

Release版本

开发版本

Release版本

工程右键菜单->属性

工程属性
slide50
建立调试
  • 连接虚拟机
    • 同LSP工程,只是生成的bzImage不仅包含了LSP部分,还包含了应用部分。
  • 新建调试配置
    • 同Downloadable工程
  • 启动调试
    • 同LSP工程
slide51
安装KIDE

搭建Linux虚拟机环境

开发LSP工程

开发Downloadable工程

开发Bootable工程

调试工程

目录

slide52

Attach成功!usrAppint暂停,自动列表显示它的堆栈信息。此时可以双击我们需要的某个堆栈,打开源文件,对它设置断点。Attach成功!usrAppint暂停,自动列表显示它的堆栈信息。此时可以双击我们需要的某个堆栈,打开源文件,对它设置断点。

首先对其点右键->Attach

调试视图,当前是在内核任务级调试状态,我们现在对usrAppint这个线程进行调试

进入调试
  • Attach
slide53

切换回任务级调试

任务级切到系统级:对System Thread点右键->系统级调试

系统级切任务级:对Task Thread点右键->任务级调试

进入调试
  • 双态切换

内核调试的两种方式前面已经介绍过,实际调试过程中,我们可能都会用到。KIDE为此提供了双态切换功能,前面LSP调试配置我们是建立的任务级调试,其实也可以建系统级调试,区别只在于进入调试时的初始状态。

slide54

直接点这里查找

点这里添加路径

如果不是最高优先级,请调整这里

记得勾上

某些源会找不到,例如内核中的源

找到路径,最好是最后1级目录

Succeed!!!

正常情况下,双击堆栈即可打开源文件

查找源
slide55
设置断点
  • 断点类型
    • 局部断点:只对当前任务起作用
    • 全局断点:对整个系统起作用(主要针对系统级调试)
    • 临时断点:断点只在第1次生效
    • 函数断点:将整个函数作为一个断点,停在其内部有效行第1行处。
    • 数据断点:对全局变量设置,在读/写全局变量时停住。
slide56

设置函数断点

  • 设置局部断点
  • 设置全局断点
  • 设置临时断点
  • 设置数据断点

只能在此主进程处设置

直接在行数左边双击设置;再双击删除

运行->设置数据断点

只能在大纲视图中,对函数名设置

全局变量名

光标停在代码行->运行->设置全局断点

写/读时断下来

设置方法与全局断点类似

设置断点
slide57
恢复运行
  • 对于处于Attached并暂停的任务,设置断点之后需要恢复运行,以便断点生效。
  • 恢复的3种方式:
    • Detach :使线程脱离调试状态。
    • Detach and Rusume:脱离调试状态并运行
    • 继续:直接恢复运行
slide58

1 2 3

单步调试
  • 任务停在断点处时,可以进行单步运行。查看各种信息(变量、内存、寄存器、反汇编…)
    • 1 单步跳入(Step into)
    • 2 单步跳过(Step over)
    • 3 单步返回(Step out)
slide59

运行一段时间后停在此行

光标停在目标行处

任务处于Attached+暂停状态

运行->运行至行

单步调试
  • 运行至行
slide60

查看内存

  • 查看断点
  • 反汇编查看
  • 查看寄存器
查看状态
  • 查看变量
slide61
结束调试
  • Step1 关闭所有断点---断点列表
  • Step2 恢复所有任务到运行状态
  • Step3 终止调试进程
  • Step4 卸载模块(Downloadable工程)