linux上使用J-Link调试S3C2440裸机代码

发布者:JoyfulSpirit最新更新时间:2024-08-01 来源: cnblogs关键字:linux  J-Link调试  S3C2440 手机看文章 扫描二维码
随时随地手机看文章

工具:

  1. segger的jlink仿真器

  2. segger的jlink for linux

  3. 交叉编译工具链里面的arm-xx-linux-xx-gdb

  4. 初始化脚本

工具安装

segger的jlink for linux

进入Segger官网--->Download--->J-Link/J-Trace--->J-Link Software and Documentation Pack。有deb、rpm、tgz三种包可供选择,随便选一个,我选的是tgz。由于我的仿真器是和谐版,所以我不敢选择高版本的J-Link,选择Older versions。下载一个比较老的,我下的是最老的。

解压至你要安装的目录。里面有个README.txt,安装说明操作。安装完了为方便起见,记得export一下PATH。


交叉编译工具链里面的arm-xx-linux-xx-gdb

这个不多介绍,你想自己编译就编译,想用别人制作好的也行。


初始化脚本

此初始化脚本是给arm-xx-linux-xx-gdb用的,gdb可以通过-x file.cmd从文件里面指定命令序列。具体如下:
#初始化 S3C2440 CPU.


#定义一个函数(功能块)

define reset_s3c2440

##设置小端模式,要和你跑的裸机程序一致.

monitor endian little

##copied from JLinkGDBServer Document.

monitor reset #复位 S3C2440

monitor reg cpsr = 0xd3 #设置 cpsr 寄存器.

monitor speed auto #Link Speed.

end

 

##main function defined for connect to the TARGET.

##arg0 = IP地址.

##arg1 = JLinkGDBServer端口号.

define connect_s3c2440

if $argc == 2

target remote $arg0:$arg1

reset_s3c2440

end

end


大概就是通过IP:PORT连接上JLinkGDBServer,然后下发一系列的指令初始化s3c2440。这些指令也可以手动逐个敲进去。


工作原理介绍

参考gdb工作原理

本地调试搞linux都熟悉。有时候由于资源限制、或者目标机不在现场,就需要借助gdbserver做远程调试。可以这样理解,gdb是由gdb前端和gdb后台组成,gdb前端负责和用户交互,gdb后台负责和操作ptrace,在远程调试时gdbserver提供一个后台和一个通讯接口与本地的gdb前端交互。gdb和gdbserver之间可以通过串口,usb,tcp/ip来通讯。一般来说gdbserver远远小于gdb,所以资源限制情况下直接放一个gdbserver到目标机里面,然后远程调试。


JLinkGDBServer

JLinkGDBServer又相当于把gdbserver---->ptrace---->target替换成了gdbserver---->jlink--->jlink调试器---->target。JLink还有好多好玩的工具J-Link Remote Server、J-Link Commander、J-Link RTT Viewer、J-Link SWO Viewer等等。


调试步骤

1.代码

https://github.com/tanghammer/mini2440_peripherals.git


2.硬件连线

按照jlink仿真器接线方式,启动方式选择NorFlash。


3.烧录程序

Windows下操作:

  • 启动J-Flash

  • file--->open project--->打开s3c2440.jflash

  • file--->open data file--->选择要烧录的bin文件

  • F7(Auto)

这样程序就烧录到了Norflash,下面是s3c2440.jflash分享链接。
链接:https://pan.baidu.com/s/17QSzRdSOImYv3LM1UROqiw
提取码:vazg


4.启动JLinkGDBServer

直接执行命令JLinkGDBServer

5.启动GDB

arm-none-linux-gnueabi-gdb -x s3c2440_init -ex 'connect_s3c2440 192.168.20.156 2331' ./sdram_elf


6.开始调试

load

b main

c


关键字:linux  J-Link调试  S3C2440 引用地址:linux上使用J-Link调试S3C2440裸机代码

上一篇:使用jlink直接烧norflash或者nandflash不借助uboot的猜想
下一篇:MDK中的调试脚本分析

推荐阅读最新更新时间:2024-11-08 11:24

基于Video4Linux的摄像头驱动设计
0引言 随着多媒体技术、网络技术的迅猛发展和后PC机时代的到来,利用嵌人式系统实现远程视频监控、可视电话和视频会议等应用已成为可能。为了实现这些应用,实时获得视频数据是一个重要环节。针对这一点本文在嵌入式系统平台上,基于Video4Linux(简称V4L)技术,实现了摄像头驱动开发,详细叙述了V4L技术和摄像头在Blackfin536 DSP平台上的Linux驱动程序设计。 1 Video4Linux V4L是Linux的影像串流系统与嵌入式影像系统的基础。Linux在TV、多媒体上的应用是目前相当热门的研究领域,而其中最关键的技术则是Linux的V4L。V4L是Linux kernel里支持影像设备的一组APIs,配合适当的
[嵌入式]
基于Video4<font color='red'>Linux</font>的摄像头驱动设计
OK6410A 开发板 (八) 118 linux-5.11 OK6410A arm异常原因及linux应用场景及结果
异常之后,会返回吗? 应用程序会被杀掉吗?内核会崩溃吗? gic 还会一直中断吗? .section .vectors, ax , %progbits .L__vectors_start: W(b) vector_rst W(b) vector_und W(ldr) pc, .L__vectors_start + 0x1000 W(b) vector_pabt W(b) vector_dabt W(b) vector_addrexcptn W(b) vector_irq W(b) vector_fiq reset 异常 产生根本原因 通过管脚或寄存器访问对 c
[单片机]
S3C2416 Linux2.6.21 驱动移植--添加UART3 及波特率设置bug消除
一,移植环境 (红色粗字体字为修改后内容,蓝色粗体字为特别注意内容) 1.主机环境:Virtualbox 下ubuntu-10.10 2.编译编译环境:arm-linux-gcc v4.4.3 3.uboot : U-Boot 1.3.4(友坚提供) 4.linux内核版本:2.6.21.5 5.硬件平台:采用友坚UT2416CV02核心板开发的平台 6.参考: linux内核支持S3C2416的UART3 (http://www.itkee.com/os/detail-1677.html ) S3C2416 User's Manual, Revision 1.10 二,添加UART3 S
[单片机]
Uboot在S3C2440上的移植详解(五)
一、移植环境 主 机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand,Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2.tgz u-boot:u-boot-2009.08.tar.bz2 二、移植步骤 9)实现u-boot对yaffs/yaffs2文件系统下载的支持。 注意:此篇对Nand的操作是基于MTD架构方式,在 u-boot-2009.08在2440上的移植详解(三) 中讲到过。 通常一个Nnad Flash存储设备由若干块组成,1个块由若干页组成。一般128MB以下容量的Nand Flash芯片,一页大小为528B,被依次分为
[单片机]
Uboot在<font color='red'>S3C2440</font>上的移植详解(五)
s3c2440裸机开发环境的搭建
用于arm裸机程序开发的IDE基本有MDK,IAR,还有ADS,也可以选择在linux下安装交叉编译链来进行开发。笔者选择的是MDK作为我进行开发的IDE。下面介绍笔者搭建开发环境的过程。 笔者主要参考了两篇博文来进行开发环境的搭建的,分别是: http://blog.csdn.net/mybelief321/article/details/8910528 http://blog.csdn.net/shengnan_wu/article/details/8116815 笔者搭建后的相关环境如下: 开发板:mini2440 操作系统:Windows 8.1 64位 开发环境:MDK 4.6版本 仿真器
[单片机]
<font color='red'>s3c2440</font>裸机开发环境的搭建
Mentor第二代AMD嵌入式R系列APU嵌入式软件产品上市
2014年5月20日,俄勒冈州威尔逊维尔——Mentor Graphics(NASDAQ:MENT)今天宣布针对最新第二代AMD嵌入式R系列APU(此前代号为:“白头鹰”)进行软件开发的Mentor®嵌入式软件已上市。作为Linux Foundation Yocto项目的金牌会员,AMD和Mentor Graphics就向嵌入式开发人员提供全面的嵌入式Linux®和开发工具解决方案事宜签订了多年协议。 嵌入式开发人员通过下载最新第二代AMD嵌入式R系列APU专用Mentor Embedded Linux Lite和Sourcery™ CodeBench Lite产品就能立即进行评估、原型设计及开发工作。此外,那些需要支持、
[嵌入式]
Linux-2.6.32.2内核在mini2440上的移植(十六)---中断的按键驱动
移植环境 1,主机环境:VMare下CentOS 5.5 ,1G内存。 2,集成开发环境:Elipse IDE 3,编译编译环境:arm-linux-gcc v4.4.3,arm-none-linux-gnueabi-gcc v4.5.1。 4,开发板:mini2440,2M nor flash,128M nand flash。 5,u-boot版本:u-boot-2009.08 6,linux 版本:linux-2.6.32.2 7,参考文章: 嵌入式linux应用开发完全手册,韦东山,编著。 Mini2440 之Linux 移植开发实战指南 【1】硬件原理 Mini2440 具有6 个用户测试按键,它们都是连接到CPU 的中断
[单片机]
<font color='red'>Linux</font>-2.6.32.2内核在mini2440上的移植(十六)---中断的按键驱动
Google输掉Linux服务器专利官司 牵连到Android 系统
    据FOSS Patents博客报道,Google刚刚输掉了一个关于他们Linux服务器内核的重要官司。Bedrock Computer Technologies将针对5,893,120专利被Google的服务器侵权获得500万美元的赔偿,他们的专利被描述为“一种使用hashing技术和外部串联以及随时移除过期数据的针对信息存储和恢复的方式和设备”。     尽管500万美元对Google来说是小菜一碟,但输掉的官司意味着Google必须修改目前他们服务器使用的Linux内核,甚至是修改Android操作系统。     法庭的判决结果是4月15日下达的,在昨天才公布出来。Bedrock Computer
[手机便携]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved