环境:

硬件:PC机<------>ARM仿真器v8.00<------>已下载好bit流的Xinlinx SoC开发板(其上有arm cortex-a9核)

软件:Redhat Linux6(或虚拟机) + openocd

使用openocd下载程序,调试arm cortex-a9核。

一、openocd安装

  1. 下载libusb库安装或直接yum install libusb*
  2. 下载openocd-0.10.0.zip:https://sourceforge.net/projects/openocd/解压,进入目录
  3. $ ./configure --prefix=/home/benben/openocd --enable-jlink
  4. $ make                                    #若编译有错根据提示信息修改
  5. $ sudo make install

二、openocd使用

$ lsusb

能查到仿真器usb信息...

$ openocd -f em8302_jtag.cfg(其中引用了jlink.cfg与v7arm.cfg) #连接开发板

打印出一些无Error的信息...

$ telnet localhost 4444 #启动守护程序

> resume 0 #从0地址开始运行

> halt #暂停cpu

> mdw 0 12 #从0地址读12个数(32位)

>mww 地址 写的数 #向某地址写数(32位)

>reg #查看寄存器

em8302_jtag.cfg内容

# The 8301 Board use jlink to Debug

source [find interface/jlink.cfg]

transport select jtag

# THe 8301 Board use a single v7arm chip

source [find target/v7arm.cfg]

echo "8302 Board Loaded."

# Set reset type and may be changed in some particular cases

reset_config trst_only

#reset_config separate

#reset_config trst_open_drain srst_open_drain

adapter_khz 200

# Wait after deasserting nTRST before starting new JTAG operations

#jtag_ntrst_delay 200

jlink.cfg内容(指定类型为jlink)

#

# Segger J-Link

#

# http://www.segger.com/jlink.html

#

interface jlink

# The serial number can be used to select a specific interface in case more than one

# is connected to the host.

#

# Segger software omits leading zeros in serial number displays,

# OpenOCD requires them.

#

# Example: Select J-Link with serial 123456789

#

# jlink serial 000123456789

v7arm.cfg(指定cpu信息)

if { [info exists CHIPNAME] } {

set _CHIPNAME $CHIPNAME

} else {

set _CHIPNAME ecictv7

}

# CoreSight Debug Access Port

if { [info exists DAP_TAPID] } {

set _DAP_TAPID $DAP_TAPID

} else {

set _DAP_TAPID 0x4ba00477

}

jtag newtap $_CHIPNAME dap -irlen 4 -ircapture 0x01 -irmask 0x0f \

-expected-id $_DAP_TAPID

#

# Cortex A9 target

#

# GDB target: Cortex-A9, using DAP, configuring only one core

# Base addresses of cores:

# core 0  -  0x1fffc000

# core 1  -  0x2fffc000

set _TARGETNAME1 $_CHIPNAME.cpu.0

set _TARGETNAME2 $_CHIPNAME.cpu.1

# A9 core 0

target create $_TARGETNAME1 cortex_a -chain-position $_CHIPNAME.dap \

-coreid 0 -dbgbase 0x80090000

# -coreid 0 -dbgbase 0xc0000000

#$_TARGETNAME1 configure -work-area-phys 0x80000000 -work-area-size 8096

$_TARGETNAME1 configure -event reset-start { adapter_khz 50 }

#$_TARGETNAME1 configure -event reset-assert-post "cycv_dbginit $_TARGETNAME1"

$_TARGETNAME1 configure -event gdb-attach { halt }

#smp mode cannot halt only one cpu core, have no idea, by yzq

# A9 core 1

#target create $_TARGETNAME2 cortex_a -chain-position $_CHIPNAME.dap \

#        -coreid 1 -dbgbase 0xc0002000

#$_TARGETNAME2 configure -event reset-start { adapter_khz 1000 }

#$_TARGETNAME2 configure -event reset-assert-post "cycv_dbginit $_TARGETNAME2"

#$_TARGETNAME2 configure -event gdb-attach { halt }

#target smp $_CHIPNAME.cpu.1 $_CHIPNAME.cpu.0

proc cycv_dbginit {target} {

# General Cortex A8/A9 debug initialisation

cortex_a dbginit

}

转载于:https://www.cnblogs.com/zhouliyan/p/11138070.html

openocd安装与调试相关推荐

  1. 使用openocd调试Linux内核,openocd安装与调试

    环境: 硬件:PC机ARM仿真器v8.00已下载好bit流的Xinlinx SoC开发板(其上有arm cortex-a9核) 软件:Redhat Linux6(或虚拟机) + openocd 使用o ...

  2. openocd调试Linux内核,openocd安装与调试

    环境: 硬件:PC机ARM仿真器v8.00已下载好bit流的Xinlinx SoC开发板(其上有arm cortex-a9核) 软件:Redhat Linux6(或虚拟机)+ openocd 使用op ...

  3. OpenOCD安装与使用(JTAG调试)

    本文介绍openocd开源软件的安装以及搭配JTAG对Xilinx u500VC707devkit的调试 PC OS: Ubuntu20.04 LTS Target ARCH: riscv64 JTA ...

  4. openocd目录_openocd安装与调试

    环境: 硬件:PC机ARM仿真器v8.00已下载好bit流的Xinlinx SoC开发板(其上有arm cortex-a9核) 软件:Redhat Linux6(或虚拟机)+ openocd 使用op ...

  5. openOCD安装及配置

    RISC-V openOCD安装及配置 本文介绍openocd开源软件的安装和配置工作 OS: Ubuntu20.04 openOCD version: openocd v0.10.0 1.什么是op ...

  6. Redis安装与调试

     Redis安装与调试 Redis安装与调试linux版本:64位CentOS 6.5 Redis版本:2.8.17  (更新到2014年10月31日) Redis官网:http://redis. ...

  7. 计算机网络环境及应用系统的安装与调试(Computer network environment and application system installation and debugging)

    计算机网络环境及应用系统的安装与调试(Computer network environment and application system installation and debugging) W ...

  8. 无线局域网安装与调试(Wireless LAN installation and commissioning)

    无线局域网安装与调试(Wireless LAN installation and commissioning) 在校园内,无线局域网与现有校园网链接 无线统一网络AC功能描述 Configuratio ...

  9. Linux课程---11、Linux中软件安装和调试

    Linux课程---11.Linux中软件安装和调试 一.总结 一句话总结: 启动过程:1.安装软件,2.修改配置文件,3.启动服务 查看过程:4.查看进程,5.查看端口 关闭过程:6.关闭软件,7. ...

最新文章

  1. php文件上传前端页面样式,HTML实现美化上传文件样式
  2. [转载] java如何实现一个字符串的反转和替换
  3. 【Android】安卓闪电复习
  4. java通过TscLibDll调用佳博热敏票据打印机(580130IVC)打印小票
  5. Linux超详细指令及其解析
  6. 7-5 换硬币 (20 分)
  7. 如何在SQL SERVER的windows身份验证添加一个SQL Server身份验证方式
  8. 计算机启动显示不正确的分区表,电脑开机黑屏提示无效的分区表如何解决_电脑开不了机显示无效的分区表如何处理...
  9. 数据扁平化与反扁平化
  10. linux系统安装flash
  11. Harbor开源项目有奖征文活动开启
  12. HTML5特效~3D立方体旋转
  13. Connection to the other side was lost in a non-clean fashion
  14. 初中物理公式总结大全(pdf可下载)
  15. jieba textrank关键词提取 python_五款中文分词工具在线PK: Jieba, SnowNLP, PkuSeg,THULAC, HanLP...
  16. 店铺流量提升及推广方法
  17. SQL数据库-创建数据库
  18. rust最美建筑_[资料整理]动物之森的美丽物语 (多图;补完)
  19. UAP 添加字典表
  20. Panoptic SegFormer:全景分割第一名!南大港大英伟达提出新算法,霸榜全景分割...

热门文章

  1. es6方法过滤掉两个数组中对象id值相等的项
  2. 来呀,快活呀。iOS 超级码农群:538549344
  3. MySQL 安全性知识要点
  4. 发布单机端DELPHI程序访问MySQL必备文件
  5. 向其他进程注入代码的三种方法
  6. 【Java心得总结六】Java容器中——Collection
  7. [恢]hdu 2016
  8. .Net4.0 Parallel编程(三)Data Parallelism下
  9. 明天一定要记得放一个硬币在口袋
  10. matlab zeros初始化为0矩阵