0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用CodeViser调试RK3399处理器和Linux kernel指导(第二部分)

麦克泰技术 来源:麦克泰技术 2023-08-08 11:11 次阅读

CodeViser是J&D Tech公司开发的一款JTAG仿真器,支持ARMRISC-VCPU 核。配套的CVD调试软件提供高效稳定的调试环境,支持源码级调试和强有力的脚本命令。本文讨论使用CodeViser 调试瑞芯微公司RK3399 多核芯片的过程,开发板使用华清FS3399 开发板。

RK3399的CPU采用big.LITTLE大小核架构,双Cortex-A72大核+四Cortex-A53小核结构,对整数、浮点、内存等作了大幅优化,在整体性能、功耗及核心面积三个方面都具革命性提升。

04

Liunx Kernel 调试

1、按照华清FS3399的使用手册指导, 建立linux系统的虚拟机,按照第三章 Linux 系统编译中的说明,获取系统的所有源代码,在虚拟机中编译全系统所有代码,或者单独编译linux kernel,编译完成,将其打包拷贝到装有CVD64软件的机器上,并按照原始编译路径建立目录(例如:作者的路径为C:homelinux k3399_linux_sdk_v2.0),将linux kernel 源代码解压到所建立的目录中备用。

2、用串口如前所述,启动板子上的系统,按CTRL+C让其停在uboot环境中。

41f60ffa-3598-11ee-9e74-dac502259ad0.png

3、启动CVD64软件,进入Config->Interface中,在System选项卡中,点按UP命令,连上板子,进入Debug模式。

42296468-3598-11ee-9e74-dac502259ad0.png

4、用Program->Load命令加载C:homelinux k3399_linux_sdk_v2.0kernelvmlinux,注意:选择 No-code。

4256b198-3598-11ee-9e74-dac502259ad0.png

4275cce0-3598-11ee-9e74-dac502259ad0.png

开始加载源代码,由于源代码较多,加载需要一段时间。可以选择No-code,不下载板子上的代码。

42a8b7ea-3598-11ee-9e74-dac502259ad0.png

5、点按工具条上的黄箭头显示源代码,

42c6d72a-3598-11ee-9e74-dac502259ad0.png

42dfff84-3598-11ee-9e74-dac502259ad0.png

6、从菜单Symbol -> Symbol by Name -> Symbol 或点按工具条黄箭头右侧的一个图标,打开Symbol Browse View视图如下图:

4316053e-3598-11ee-9e74-dac502259ad0.png

7、在Symbol Browse View视图中输入:start_kernel, 然后,回车,就可以显示Debug List View,我们可以看到显示如下:我们在包含start_kernel这行设置一个断点,

4330ea3e-3598-11ee-9e74-dac502259ad0.png

8、然后, 按当前窗口的Go命令,或按工具条上的Go 按钮,最后我们进入串口窗口,输入:run bootcmd 回车。

435b1d0e-3598-11ee-9e74-dac502259ad0.png

这时,我们在串口窗口中可以看到,程序停在 Starting kernel ...的地方,这时我们就可以调试linux kernel的程序了。

9、这时我们可以在start_kernel 下面的语句设置断点,如下图:我们按两次本窗口上的Go命令,程序就停在了518行上了。

4381e9f2-3598-11ee-9e74-dac502259ad0.png

05

多核调试

多核调试需要在多核启动以后才能调试,以下我们演示SMP 调试。我们就需要在多核启动完成后的smp_cpus_done函数处设置一个断点,选择System Browser View 视图,输入smp_cpus_done, 回车,

43acce38-3598-11ee-9e74-dac502259ad0.png

将会在Debug List View视图中,弹出smp_cpus_done函数,在此处设置一个断点。

43cc3c6e-3598-11ee-9e74-dac502259ad0.png

在上面调试linuxKernel时,停在start_kernel以后,再点击图上工具栏上的运行按钮或或调试视图中Go按钮,继续运行, 程序就会停在smp_cpus_done函数处,

43f2f930-3598-11ee-9e74-dac502259ad0.png

这时我们看串口中断信息

44217530-3598-11ee-9e74-dac502259ad0.png

这时我们双击下面工具条上的core选择core1,这时下面工具条上已经显示的是core1了,说明Debug List View中已经是core1的程序了。

446b50b0-3598-11ee-9e74-dac502259ad0.png

单步调试后,就跳到下图

44a21050-3598-11ee-9e74-dac502259ad0.png

这时我们返回core0,继续调试一些步骤,我们可以自动进入core4调试程序,

43f2f930-3598-11ee-9e74-dac502259ad0.png

到第860多行以后程序自动进入了core4,我们可以看下图的下面的工具条上这时显示的是core4,

44fbf070-3598-11ee-9e74-dac502259ad0.png

以上就是对称多处理调试,也就是SMP调试简单的说明。CodeViser 也支持 AMP 调试,有机会在其他芯片平台上我们再作详细说明。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 仿真器
    +关注

    关注

    14

    文章

    988

    浏览量

    82998
  • Linux系统
    +关注

    关注

    4

    文章

    567

    浏览量

    26924
  • JTAG
    +关注

    关注

    6

    文章

    383

    浏览量

    71151
  • Cortex-A53
    +关注

    关注

    0

    文章

    32

    浏览量

    21153
  • RK3399
    +关注

    关注

    2

    文章

    207

    浏览量

    24385

原文标题:使用CodeViser 调试RK3399 处理器和Linux kernel指导(第二部分)

文章出处:【微信号:麦克泰技术,微信公众号:麦克泰技术】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    LabVIEW开发者必备技巧宝典第二部分

    LabVIEW开发者必备技巧宝典第二部分:由电子发烧友网论坛整理出品,集结众多大牛、工程师的经验之作。为广大LabVIEW开发工程师提供开发、调试技巧,助力LabVIEW工程师。
    发表于 11-26 15:32

    LabVIEW开发者必备技巧宝典第二部分

    ``LabVIEW开发者必备技巧宝典第二部分:由电子发烧友网论坛总结出品,集结众多大牛、工程师的经验之作。为广大LabVIEW开发工程师提供开发、调试技巧,助力LabVIEW工程师。欢迎大家下载收藏
    发表于 12-05 14:17

    JN5189 第二部分-1

    接下来是第二部分了和第三部分,直接见附件中的Word吧!附上运行测试视频和led_blinky.bin
    发表于 09-23 00:40

    RK3399Pro与AR9201处理器内核有哪些不同之处

    DSP芯片一般有哪些主要特点呢?RK3399Pro与AR9201处理器内核有哪些不同之处?
    发表于 02-14 06:47

    RK3399处理器与AR9201处理器有哪些不同之处呢

    RK3399处理器与AR9201处理器有哪些不同之处呢?hi3559A处理器与RV1126处理器有哪些不同之处呢?
    发表于 02-21 07:29

    如何去设计一种基于RK3399处理器的RT*** u***转网口驱动呢

    如何去设计一种基于RK3399处理器的RT*** u***转网口驱动呢?
    发表于 03-04 09:55

    基于RK3399处理器的64位6核服务处理器具有哪些功能呢

    基于RK3399处理器的64位6核服务处理器具有哪些功能呢?
    发表于 03-04 10:02

    分享一下RK3399处理器的GPU和CPU性能方法

    分享一下RK3399处理器的GPU和CPU性能方法
    发表于 03-07 06:36

    基于RK3399处理器设计的RK3399开发板有哪些配置呢

    基于RK3399处理器设计的RK3399开发板有哪些配置呢?基于RK3399处理器设计的RK3399
    发表于 03-07 06:34

    RK3399处理器的性能优势有哪些?

    RK3399处理器的性能优势有哪些?
    发表于 03-08 06:46

    RK3399是什么?RK3399处理器有哪些功能呢

    RK3399是什么?RK3399处理器有哪些功能呢?
    发表于 03-09 06:37

    如何使用 Nios II 处理器进行你中意的设计之第二部分教程

    使用 Nios II 处理器进行设计”第二部分
    的头像 发表于 06-11 14:36 4774次阅读
    如何使用 Nios II <b class='flag-5'>处理器</b>进行你中意的设计之<b class='flag-5'>第二部分</b>教程

    瑞芯微RK3399处理器的优势介绍

    Rk3399主板性能优势有哪些?大家都知道rk3399主板在性能以及其他方面都有很大的优势,不仅在CPU与GPU上更为先进,瑞芯微RK3399处理器还具备以下7大优势。
    发表于 03-18 14:29 5482次阅读

    使用CodeViser调试RK3399多核芯片的过程

    CodeViser是J&D Tech公司开发的一款JTAG仿真器,支持ARM和RISC-V等CPU 核。配套的CVD调试软件提供高效稳定的调试环境,支持源码级调试和强有力的脚本命令。本
    的头像 发表于 08-01 11:09 618次阅读
    使用<b class='flag-5'>CodeViser</b><b class='flag-5'>调试</b><b class='flag-5'>RK3399</b>多核芯片的过程

    rk3399移植Linux内核

    RK3399是一款由中国厂商瑞芯微推出的高性能处理器芯片,被广泛用于嵌入式系统开发。在进行应用程序开发之前,我们需要将Linux内核移植到RK3399上,以支持硬件的驱动和功能。本文将
    的头像 发表于 01-08 09:56 354次阅读