jtag调试ls1012a linux-5.3内核

news/2024/11/14 23:52:12/

1、jtag连接

        OK1012A-C jtag引脚如下:

        如果jlink的VCC对外输出供电,那么需要关闭,VCC对外供电导致jtag连接不上。使用引脚匹配的转接板连接开发板的jtag插座。使用交叉串口线连接开发板。

 2、linux-5.3内核编译

        -O0编译修改方法与树莓派4b编译修改方法一样。linux官网5.3不带网卡驱动,暂时不能使用网卡,官网的dtb也没有支持,暂时可以使用开发板出厂的dtb。要用jtag调试最好关掉CONFIG_ARM_CPUIDLE配置,开启CONFIG_ARM_CPUIDLE的时候,gdb的Ctrl+c暂停的时候大部分不会停在内核态,此时会导致jtag没有权限修改内核代码,没办法插入断点。

3、jtag调试内核

        (ls1012a资料在NXP官网注册一下就可以自由下载,比树莓派更详细,因此用来调试内核也比较方便,ls1012a带pcie、SATA接口,接口也算比较齐全了)

        ls1012a本来就是单核,不需要添加nosmp参数,只需要jtag能修改内核代码即可;jtag引脚默认就是jtag功能,也不需要修改IO口功能。

        openocd配置文件直接使用openocd官网的文件再加jlink配置即可。

https://github.com/openocd-org/openocd/blob/master/tcl/target/ls1012a.cfg

        openocd连接ls1012a:

        gdb 连接openocd gdbserver:

         连接上之后,内核正好运行在__cpu_do_idle函数,此时cpu处于内核态,jtag有权限修改内核的数据。

        在entity_tick函数设置断点并查看调用栈:

         因为使用的-O0编译,所以调用栈的参数一目了然,从handle_domain_irq函数参数可以看到定时器的硬件中断号为30,正是cortex-a53手册里面的中断号。

         查看cfs_rq的内容:


http://www.ppmy.cn/news/580291.html

相关文章

NXP LS1012A

1.NXP LS1012A 【1】https://www.nxp.com/support/developer-resources/run-time-software/linux-software-and-development-tools/linux-sdk-for-qoriq-processors:SDKLINUX?&tabDesign_Tools_Tab#nogo 【2】https://www.yoctoproject.org/ 【3】https://www.yoctoprojec…

1012.区间合并

##1012.区间合并 Description 给定n个开区间&#xff0c;合并他们中的重合者&#xff0c;输出合并后的区间数量。 Input 第一行&#xff1a;n(1 < n < 1000) 第2至第n1行&#xff1a;每行两个整数(不会超过int)&#xff0c;第i行的两个整数表示第i-1个区间的左边界和右边…

c语言oj1012求绝对值,ZZULIOJ 1012题解

题目描述 求实数的绝对值。 输入 输入一个实数。 输出 输出它的绝对值&#xff0c;结果保留两位小数 样例输入 -234.00 样例输出 234.00 根据题目&#xff0c;我们用2种思路可以得出结果&#xff0c;一种是使用if语句判断输入的数的正负&#xff0c;如是正即输出&#xff0c;否…

Hdu1012:计算e(java实现)

原题链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1012题目名称&#xff1a;计算e问题描述&#xff1a; 输入项&#xff1a; 无测试用例&#xff1a; 无 public class Hdu1012 {public static void main(String[] args) {for (int i 0; i < 9; i) {Sys…

hdoj 1012

hdoj 1012 阶乘和求和&#xff0c;各位为保留9位小数&#xff0c;注意到前3个比较特别&#xff0c;直接输出结果&#xff1b; public class Main {public static void main(String[] args) {double [] e new double[10];e[0] 1;e[1] 2;e[2] 2.5;System.out.println("…

杭电 OJ-ACM 1012 (u Calculate e)

原题&#xff1a; Problem Description e的一个简单数学公式是 其中允许n为无穷大。这实际上可以使用相对较小的n值得出非常精确的e近似值。 Output 输出由上述公式生成的n值从0到9的e的近似值。输出的开头应与下面所示相似。 Sample Output n e - ----------- 0 1 1 2 …

洛谷1012

题目链接&#xff1a;https://www.luogu.org/problem/P1012 #include<bits/stdc.h> using namespace std; string num[23]; bool cmp(const string &a,const string &b){return ab>ba; } int main(){int n;cin>>n;for(int i0;i<n;i){cin>>num…

LS1012A降功耗、降温方法

使用LS1012A 核心板&#xff0c;运行Ubuntu 18.04 操作系统&#xff0c;在做高温55℃和70℃试验时一直无法通过&#xff0c;CPU挂掉。 由于结构限制&#xff0c;前期并未增加散热片等散热措施。 系统运行时&#xff0c;通过 cat /sys/class/thermal/thermal_zone0/temp 命…