zoukankan      html  css  js  c++  java
  • 01.裸板调试

    1. 点灯法

     1 led_flicker:
     2     ldr r0,=0x56000050
     3     ldr r1,=(1<<(4*2))
     4     str r1,[r0]
     5     ldr r0,=0x56000054
     6     ldr r1,=0
     7     ldr r2,(1<<4)
     8 loop:
     9     str r1,[r0]
    10     bl delay
    11     str r2,[r0]
    12     bl delay
    13     b loop
    14 delay:
    15     ldr r3,=30000
    16 1b:
    17     sub r3,r3,#1
    18     cmp r3,#0
    19     bne 1b
    20     mov pc,lr

    可直接使用bl led_flicker来使用该程序。

    2. 串口打印及栈初步分析
    2.1 使用的前提是串口已经初始化完毕且可以正常使用

      直接在需要定位错误的地方加上printk语句,看串口是否有相应的输出即可。
    2.2 nand_setup的分析

      a.栈和局部变量是临时生成的

      b.局部变量的初始值在哪?函数一开始的部分读出这些值,用来初始化局部变量


    3. JTAG调试器

    工作原理:

      a.CPU发出的地址/数据信号都通过JTAG

      b.JTAG可以控制CPU

        当Addr=xxx,停止CPU(硬件断点,两个,主要用于调试nor/rom上的程序)

        当Data=xxx,停止CPU(软件断点,无数个,该地址是可写的,所以无法调试nor/rom上的程序)

      c.让JTAG直接访问外设
    3.1 命令行调试

    3.2 源码级别的调试
    前提
    a. 程序必须已经重定位好,位于它的链接地址
    a.1 如果程序的链接地址是SDRAM, 使用openocd初始化SDRAM
    a.2 使用arm-linux-gdb/arm-elf-gdb下载程序

    b. 链接脚本必须把text,rodata,data,bss等分开存放
    c. 被调试的程序为ELF格式,内含调试信息(即编译时有-g选项)

  • 相关阅读:
    textarea中的空格与换行
    js判断微信内置浏览器
    关于express4不再支持body-parser
    html5 geolocation API
    屏幕密度与分辨率
    nodebeginer
    手机浏览器下IScroll中click事件
    iphone手机上的click和touch
    AngularJS学习笔记一
    不用bootstrap实现居中适应
  • 原文地址:https://www.cnblogs.com/Lwd-linux/p/6358412.html
Copyright © 2011-2022 走看看