使用CCS5.2远程调试内核时,只需导入Linux内核源码,而不需要编译内核,也就不会用到交叉编译链,同时不需要使用gdbserver,但需要仿真器XDS560V2,所以Windows和Linux都可以完成,但考虑到Windows CCS5.2软件成熟,bug较少,且Windows易于操作,故本文推荐并主要介绍Windows版CCS5.2调试内核的方法。在介绍远程调试Linux之前,务必保证仿真器XDS560V2能够正常连接开发板。保证导入的内核版本与开发板上运行Linux系统版本一致。
/******************************************************************************************************************************************/
/******************************************************************************************************************************************/
一、CCS5.2中创建Linux内核工程
点击File->New->Project,选择Makefile Project with Existing Code,点击Next。
进入Import Existing Code页面,点击Browse按钮找到相应版本Linux内核的源码目录,Toolchainfor Indexer Settings默认为,其余部分默认,然后点击Finish进入下一步。
待工程导入完成进入如下页面即创建工程完毕。
最后,为了避免CCS5.2在执行Debug之前自动build内核工程,右击linux内核工程名,点击最下一行Properties,进入C/C++ Build界面,将下图红框内的两个勾选框清除掉。
二、关联开发板进行远程调试内核
点击Run->Debug Configuration然后选择Code Compose Studio并创建新的DebugConfiguration配置,在Target Configuration一栏选择已有的针对EVMDM3730的配置文件。
再进入Program选项卡页面,Device通过下拉框选择正在工作的仿真器Spectrum Digital XDS560V2 STM USBEmulator_0/Cortex_A8_0,Project一栏则从Workspace选择本例中的linux-03.00.01.06工程。而Program中的vmlinux则是在linux-03.00.01.06根目录编译生成的(注意大小应为40MB-80MB,而不是只有几M的,大的含有调试信息而压缩的则没有)。Loading options一栏则勾选Load sysbols only,然后点击Apply按钮。
在Target选项卡,Run Options里可以指定一个入口点。点击Apply并Debug。
进入启动调试界面,如出现下面与前面类似的错误,点击取消即可。
然后即进入内核调试界面,占按下图红框内的两个按钮切换进出debug模式。
正常调试linux内核的界面