630 likes | 916 Views
KIDE 使用培训. 成研所操作系统团队. 安装 KIDE 搭建 Linux 虚拟机环境 开发 LSP 工程 开发 Downloadable 工程 开发 Bootable 工程 调试工程. 目录. 许可协议. 欢迎界面. 安装前卸载. 选择安装组件. 重启计算机. 选择安装路径. d:Embsys1.2. 安装 KIDE. 安装 KIDE. Step1 双击安装图标进入 KIDE 安装程序 Step2 欢迎界面:可以查看安装版本 Step3 许可协议:阅读后 “ 同意 ” Step4 先卸载,后安装 , 尽量这样。
E N D
KIDE使用培训 成研所操作系统团队
安装KIDE 搭建Linux虚拟机环境 开发LSP工程 开发Downloadable工程 开发Bootable工程 调试工程 目录
许可协议 欢迎界面 安装前卸载 选择安装组件 重启计算机 选择安装路径 d:\Embsys1.2 安装KIDE
安装KIDE • Step1 双击安装图标进入KIDE安装程序 • Step2 欢迎界面:可以查看安装版本 • Step3 许可协议:阅读后“同意” • Step4 先卸载,后安装,尽量这样。 • Step5 选择安装组件,可选组件是4种CPU体 系和标准Linux内核,其他务必安装。 • Step6 选择安装路径,开始安装 • Step7 重启计算机(一般不需要)
重启计算机 选择卸载位置 选择卸载组件 开始卸载 卸载KIDE
卸载KIDE • Step1 点击图标进入卸载程序。 • Step2 卸载向导,点“下一步” • Step3 选择卸载组件,选择不要的CPU体系或内核版本。注意取消“卸载全部文件”。 • Step4 选择卸载位置,一般按默认。 • Step5 开始卸载 • Step6 重启计算机(一般不需要)
进入KIDE • 点桌面图标 • 选择工作空间,KIDE默认在此空间下放置所有用户工程。
KIDE目录结构 • HOST目录 • ide:集成开发环境目录 • Target • bsp:LSP模板目录 • include:KLinux所需的头文件 • kernel-version:内核源码 • tools:一些KIDE需要的工具软件 • workspace:用户工程目录 • DOC目录
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
C/C++透视图 • 工程视图 • 管理工程、文件、内核配置 • 编辑窗口 • 编辑时代码录入 • 大纲视图 • 函数、声明间快速跳转 • 目标视图 • 目标机连接 • 模块下载 • 杂项视图 • 问题查看(所有KIDE错误) • 控制台信息(编译命令) • 工程属性
调试透视图 • 调试视图 • 启动、关闭调试进程 • 调试状态切换 • Attach、Detach • 堆栈查看 • 恢复进程运行 • 查看视图 • 断点查看 • 变量查看修改 • 表达式查看 • 寄存器查看修改 • 内存查看 • 反汇编查看
调试透视图 • 编辑窗口 • 设置断点 • 修改代码 • 大纲视图 • (同C/C++透视图) • 目标视图 • (同C/C++透视图) • 杂项视图 • 控制台信息(调试代理)
安装KIDE 搭建Linux虚拟机环境 开发LSP工程 开发Downloadable工程 开发Bootable工程 调试工程 目录
需要的资源 • VMware5.5.0 • Linux虚拟机: • DHCP服务 • tftpd32 • TFTP服务 • 必要的文件 • bzImage • initrd.img • pxelinux.0 • default
搭建虚拟机 • 安装VMware5.5.0 • 按默认安装 • 新建虚拟机 • 按照后面图片 • 启动DHCP服务 • 按照后面图片 • tftp客户端配置 • 添加tftp服务器地址 • 添加远程网络引导程序名
配置网卡(需要按下页先配置DHCP) 按图上选择 点此处新建虚拟机 记住虚拟机文件的路径 选host-only模式 选择VMnet1为主机 双击Ethernet 搭建虚拟机
关闭自动桥接 选择此处配置DHCP 设置VMnet8为NAT设备 保证DHCP里只有VMnet1,移除其他虚拟网络 为VMnet1配置子网掩码 点此处选择VMnet1和VMnet8作主机,之后点应用,以后每1个改动都点应用 确保此处为started 启动DHCP服务
修改此路径的配置文件 在加框位置添加这两行代码 tftp客户端配置 重启虚拟机
映像文件 远程引导程序 tftpd32配置文件 主程序 启动tftp服务 • 获取tftpd32和配置文件 • 将文件放入目录
选择我们新建的路径 DHCP已由虚拟机启动,关闭此项 点此处设置 选择前面配置的IP 启动tftp服务 • 配置tftpd32 重启tftpd32,挂起
测试环境 • 可以ping通目标板 • 可以进入KShell的命令行提示符
常见问题 • 刚启动虚拟机时DHCP那过不了 • 查看VMware网络配置里,DHCP是否被stopped • 提示找不到映像文件 • 查看\tftpboot目录里,是否有bzImage • 查看\tftpboot\pxelinux.cfg目录下,default文件里是否指定了bzImage • 提示找不到根文件系统 • 查看\tftpboot目录里,是否有initrd.img。有可能为其他名字,请修改与default文件里一致。
安装KIDE 搭建Linux虚拟机环境 开发LSP工程 开发Downloadable工程 开发Bootable工程 调试工程 目录
LSP工程概念 • LSP = Linux Support Package • 针对Linux嵌入式开发,KIDE增加了一种LSP工程类型,专为开发LSP使用 • 稳定性 • 二次开发 • 方便应用开发。 What's LSP?
LSP工程概念 • 新建的LSP • 选定CPU体系的内核代码 • 驱动代码 • 各级Makefile • 构建后的LSP • 内核映像 • LSP库 • 符号表文件
按默认 名字中不能有空格、()号、标点 LSP模板,本图是虚拟机专用 选LSP项目 编译工具链按默认 新建LSP工程
LSP工程默认关闭内核调试 空格键选择 退出时记得保存设置 此项选择网口/串口连接方式 除这4项目外,都和标准Linux一致。根据硬件特征配置 内核调试必须修改此项内容 按图上设置 Enter键选择 配置内核
此文件保存前面的配置信息 配置内核 某些子选项需要Enable父选项才出现
编译构建 • 编译:对单个源文件,检查语法正确性 • 构建:编译链接所有文件,makefile由KIDE自动生成。 • 重构:已经构建好的工程,构建选项有改变,或者内核重新配置了,需要重构。 • 清理:将工程还原到构建前的状态,删除构建生成的一系列文件(.d、.o、.out、.img)
内核映像 符号表文件 构建生成的目录 编译构建 • 构建工程
建立调试 • 建立连接 • Step1 将生成的bzImage拷贝到\tftpboot目录 • Step2 启动tftpd32和虚拟机 • Step3 进入KShell,输入ifconfig查看IP,如 192.168.1.56 • Step4 在目标视图新建调试目标
只能用串行线的情况 网线连接方式,本例采用它 本次培训用例都选这种方式连接 建立调试 • 新建调试目标
建立调试 • KIDE的调试类型 • 内核态调试---KLinux工程、内核态工程 • 内核任务级调试:只对某个进程运行控制 • 内核系统级调试:对整个系统运行控制 • 用户态调试---用户态工程 • 建立调试配置的目的 • 选择调试类型 • 选择符号表文件 • 选择目标板(可能有多个)
从新建的目标机中选择一个 单击此处选择对应工程的符号表 本例用任务级调试,双击新建,取名为LSP2 主菜单->运行->调试 设置好后点“调试” 建立调试 • 建立调试配置 建立调试配置
第1次建立调试配置按前面步骤启动,以后点此图标启动调试第1次建立调试配置按前面步骤启动,以后点此图标启动调试 启动成功!进程列表出现 下拉菜单中,这些都是建好的调试配置,选择一个我们需要的 由C/C++透视图启动时,会自动提示切换到调试透视图 建立调试 • 启动调试
安装KIDE 搭建Linux虚拟机环境 开发LSP工程 开发Downloadable工程 开发Bootable工程 调试工程 目录
Downloadable工程概念 • Downloadable工程 • 仅有应用程序部分 • 通常在开发阶段使用 • 生成 .out 可执行文件 • 体积小、编译速度快,调试方便。 • 模块方式动态加载
新建文件 编码 构建工程 建立目标连接 启动虚拟机 下载模块 建立调试配置 调试 重构 修改代码 卸载模块 Downloadable工程开发流程 新建工程 重复直到调试OK
新建Downloadable工程 与LSP工程唯一不同之处在于这里不用选LSP模板
参数赋值 根据自己所写代码,选择需要的函数,将其作为一个任务创建于线程表中 函数名 建立调试 • 下载模块 • 条件1:调试代理处于闲置状态 • 条件2:目标连接采用的KLinux模式 • 卸载模块 • 条件:被调试的模块已被终止 • 启动调试
先前建好的目标板 手动选择.out 一种方式是在目标视图下载 Downlable工程生成的.out文件 .out自动选好(推荐) 一种方式是对Downloadable工程名点右键 建立调试 • 下载模块
除了选择内核符号表模块也要选符号表 建立调试 新建调试配置
安装KIDE 搭建Linux虚拟机环境 开发LSP工程 开发Downloadable工程 开发Bootable工程 调试工程 目录
Bootable工程概念 • 主要运用于上层应用开发 • 适合开发最终的Release版本 • 与LSP工程或LSP lib关联 • 关联后大大加快了工程的编译、构建速度。 • 构建生成的映像文件包含了LSP和应用两部分。
新建Bootable工程 两种方式是等效的,但lib方式新建工程时较快,推荐使用!
工程属性 • 开发版的构建选项(KIDE默认) • 调试选项: –g 开启 • 代码优化:无 • Release版的构建选项 • 调试选项: -g 关闭 • 代码优化: -O2
开发版本 Release版本 开发版本 Release版本 工程右键菜单->属性 工程属性
建立调试 • 连接虚拟机 • 同LSP工程,只是生成的bzImage不仅包含了LSP部分,还包含了应用部分。 • 新建调试配置 • 同Downloadable工程 • 启动调试 • 同LSP工程