ads+jlink和keil+jlink调试环境配置

2023-11-19

/***********************************************************************************************************************************************************************/
ads1.2 and jlinkv8
1.安装ads1.2和jlink驱动Setup_JLinkARM_V408i.exe
安装ads1.2时,最后在100%时如果持续时间长,耐心等一下吧。
没有等待而点了cancel,则之后就不好重装了。解决办法见
http://blog.ednchina.com/mengforever1981/216162/message.aspx
2.将线连好:pc的usb口连到jlink的usb口,jlink的jtag口连到板子的jtag口。由于我的jlink的jtag口20pin而板子jtag口10pin,所以中间用一个转接小板转接了一下
将板子的flash开关在nor或nand均可,将板子上电,在开始里打开jlink gdb server,应该会出现下图,恩,jlink没坏

3.确保TQ2440_Test工程的路径中不存在中文,http://download.csdn.net/detail/songqqnew/3636198
在TQ2440_Test中双击TQ2440_Test.mcp,出现

点击debug,弹出axd窗口如下,(貌似还弹出了load session的窗口,关闭了就行)

4.在axd中点击configure target

弹出下图

add 一个文件JLinkRDI.dll,默认在C:\Program Files\SEGGER\JLinkARM_V408i,添加后如下图

然后点configure,然后在弹出的窗口中点确定,然后点OK

5.在axd中点击configure interface,弹出串口,在session file标签页配置script脚本文件init_sdram.txt,路径中不要中文

init_sdram.txt内容如下
Setmem  0x53000000 0x00000000  32
Setmem  0x4A000008 0xFFFFFFFF  32
Setmem  0x4A00001C 0x000007FF  32
Setmem  0x53000000 0x00000000  32
Setmem  0x56000050 0x000055AA  32
Setmem  0x4C000014 0x00000007  32
Setmem  0x4C000000 0x00FFFFFF  32
Setmem  0x4C000004 0x00061012  32
Setmem  0x4C000008 0x00040042  32
Setmem  0x48000000 0x22111120  32
Setmem  0x48000004 0x00002F50  32
Setmem  0x48000008 0x00000700  32
Setmem  0x4800000C 0x00000700  32
Setmem  0x48000010 0x00000700  32
Setmem  0x48000014 0x00000700  32
Setmem  0x48000018 0x0007FFFC  32
Setmem  0x4800001C 0x00018005  32
Setmem  0x48000020 0x00018005  32
Setmem  0x48000024 0x008E0459  32
Setmem  0x48000028 0x00000032  32
Setmem  0x4800002C 0x00000030  32
Setmem  0x48000030 0x00000030  32
然后确定,然后关闭axd,

6.然后在ads中再次点击debug,如果此时弹出的画面是如下,就再次执行一下第 4 5步,貌似因为之前的配置没被保存


7.然后在ads中再次点击debug,如果此次弹出的画面如下,即要求定位到2440init.s文件,那就找到到ads工程源码中的这个文件,点击打开


点击打开之后,应该就可以出现以下窗口
接下来点击go或按F5 等调试就可以了

在操作过程中,点击debug后如果又出现一些问题,那么就执行一下configure interface或configure target


/***********************************************************************************************************************************************************************/
keil4 and jlinkv8
1.安装keil4 和jlink驱动Setup_JLinkARM_V408i.exe
2.打开keil4,新建一个工程,名为test

3.在接下来的框中选择samsung的s3c2440a芯片,如下

4.在接下来的框中选择是,使用官方启动脚本,如下

5.配置板子


target:


debug:

Ext_RAM.ini是手动在工程目录建立的文件,其内容如下
/******************************************************************************/
/* Ext_RAM.INI: External RAM (SDRAM) Initialization File                      */
/******************************************************************************/
// <<< Use Configuration Wizard in Context Menu >>>                           // 
/******************************************************************************/
/* This file is part of the uVision/ARM development tools.                    */
/* Copyright (c) 2005-2008 Keil Software. All rights reserved.                */
/* This software may only be used under the terms of a valid, current,        */
/* end user licence from KEIL for a compatible version of KEIL software       */
/* development tools. Nothing else gives you the right to use this software.  */
/******************************************************************************/


FUNC void SetupForStart (void) {

// <o> Program Entry Point
  PC = 0x30000000;
}


FUNC void Init (void) {

  _WDWORD(0x4A000008, 0xFFFFFFFF);      // Disable All Interrupts

  _WDWORD(0x53000000, 0x00000000);      // Disable Watchdog Timer
  
                                        // Clock Setup 
                                        // FCLK = 300 MHz, HCLK = 100 MHz, PCLK = 50 MHz
  _WDWORD(0x4C000000, 0x0FFF0FFF);      // LOCKTIME
  _WDWORD(0x4C000014, 0x0000000F);      // CLKDIVN
  _WDWORD(0x4C000004, 0x00043011);      // MPLLCON
  _WDWORD(0x4C000008, 0x00038021);      // UPLLCON
  _WDWORD(0x4C00000C, 0x001FFFF0);      // CLKCON

                                        // Memory Controller Setup for SDRAM
  _WDWORD(0x48000000, 0x22000000);      // BWSCON
  _WDWORD(0x4800001C, 0x00018005);      // BANKCON6
  _WDWORD(0x48000020, 0x00018005);      // BANKCON7
  _WDWORD(0x48000024, 0x008404F3);      // REFRESH
  _WDWORD(0x48000028, 0x00000032);      // BANKSIZE
  _WDWORD(0x4800002C, 0x00000020);      // MRSRB6
  _WDWORD(0x48000030, 0x00000020);      // MRSRB7

  _WDWORD(0x56000000, 0x000003FF);      // GPACON: Enable Address lines for SDRAM
}


// Reset chip with watchdog, because nRST line is routed on hardware in a way 
// that it can not be pulled low with ULINK

_WDWORD(0x40000000, 0xEAFFFFFE);        // Load RAM addr 0 with branch to itself
CPSR = 0x000000D3;                      // Disable interrupts
PC   = 0x40000000;                      // Position PC to start of RAM
_WDWORD(0x53000000, 0x00000021);        // Enable Watchdog
g, 0                                    // Wait for Watchdog to reset chip

Init();                                 // Initialize memory
LOAD .\test.axf INCREMENTAL         // Download program
SetupForStart();                        // Setup for Running
g, main                                 // Goto Main
上面倒数第三行是需要改动的,在本例中是test.axf。一般为工程名.axf。编译输出窗口也有指示,如下。

另外,此文件还规定了pc的开始指向,在debug图中点击ext_ram.ini右侧的edit,如下

可以编辑此文件,有两种编辑方式:文本和图形。如下

可见设置pc要指向0x30000000,即代码段的起始地址。而代码段区域是在target标签页设定,见上面target图(即read only memory area,但也放在了sdram中)

utilities:


6.选择file/new,新建一个文件,并保存为main.c

并将此文件加入工程中,如下


7.编辑main.c,输入如下测试代码
#include<s3c2440.h>
void delay(int x)
{		int i = 0;
		while(x--){
				for(i=0;i<5000;i++){
						;
					}
			}	   
}	
int main()
{
	while(1)
	{	
	GPBCON|=(1<<2*5);//GPB5 LED1,0 on
	GPBCON&=~(1<<11);
	GPBDAT&=~(1<<5);//light on
	delay(100);
	GPBDAT|=(1<<1*5);//light off
	delay(100);

	GPBCON|=(1<<2*6);//GPB6 LED2
	GPBCON&=~(1<<13);
	GPBDAT&=~(1<<6);
	delay(100);
	GPBDAT|=(1<<1*6);
	delay(100);	 

   	GPBCON|=(1<<2*7);//GPB7 LED3
	GPBCON&=~(1<<15);
	GPBDAT&=~(1<<7);
	delay(100);
	GPBDAT|=(1<<1*7);
	delay(100);

   	GPBCON|=(1<<2*8);//GPB8 LED4
	GPBCON&=~(1<<17);
	GPBDAT&=~(1<<8);
	delay(100);
	GPBDAT|=(1<<1*8);
	delay(100);

       GPBCON|=(1<<2*0);//GPB0 BUZZER, 1 on
       GPBCON&=~(1<<1);
       GPBDAT|=(1<<1*0);
       delay(100);
       GPBDAT&=~(1<<0);
       delay(100);    
			  
	} 
	    
}

按下ctrl + F5开始调试-------开关拨到nand测
refer to http://www.360doc.com/content/11/0620/14/99105_128216053.shtml

一些位操作

某位置1,其余位不变:如置GPBCON第10位1,其余不变 (从第0位开始算起)
GPBCON |= (1<<10);
某连续几位置1,其余位不变:如置GPBCON第10,11位1,其余不变
GPBCON |= (3<<10);

如果置bit0,可以GPBCON |=1;
GPBCON |= ~0 ; 或 直接 GPBCON= 0xFFFFFFFF;//这样不太好不如 GPBCON|= ~0


某位清0,其余位不变:如清GPBCON第10位0,其余不变(从第0位开始算起)
GPBCON &= ~(1<<10);
某连续几位清0,其余位不变:如清GPBCON第10,11位0,其余不变
GPBCON &= ~(3<<10);

GPBCON &= ~1;
所有位清零 GPBCON&=0 ; 或直接 GPBCON=0;

同时某位清零和置1,而其他位不变
置GPBCON第10位为1,清GPBCON第11位为0,置GPBCON第12位为1
GPBCON = GPBCON | (1<<10) & (~(1<<11)) |(1<<12) ;
也可以
GPBCON|= 0x05<<10;//或许不能保证第11位清零(如果原来第11位=1,执行后仍为1)

从位组合数据,8位
data=0;//组合之前先清零
for(i=0;i<8;i++){
data<<1;
data |= bit_value;
}


读取中间某几位
如 val = rCLKDIVN;
    m = (val>>1)&3;//读取bit2 bit1到m
    switch (m) {
    case 0:
        HCLK = FCLK;
        break;
    case 1:
        HCLK = FCLK>>1;
        break;
    case 2:
        if(s&2)
            HCLK = FCLK>>3;
        else
            HCLK = FCLK>>2;
        break;
    case 3:
        if(s&1)
            HCLK = FCLK/6;
        else
            HCLK = FCLK/3;
        break;
    }



    keil c中嵌入汇编--c51
1.在c代码中加入汇编标志,比如
main()
{    InitAll();
    #pragma ASM
    SETB P3.5                                   //buzzer on
    NOP
    #pragma ENDASM

    ctrlprocess();
}
2.设置一下
在 Project 窗口中包含汇编代码的 C 文件上右键,选择“Options for ...”,点击右边的“Generate Assembler SRC File”和“Assemble SRC File”,使检查框由灰色变成黑色(有效)状态;如下



    keil c中嵌入汇编--arm
按照如下方式直接加入代码即可
__asm
{
mov r0,#1
mov r1,#0x56000014   //buzzer on
strb r0 ,[r1]
}        
复杂一点的例子参考
http://bbs.mcu123.net/bbs/archiver/tid-7777.html


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ads+jlink和keil+jlink调试环境配置 的相关文章

随机推荐

  • E:Package 'Vim' has no installation candidate问题解决

    不多说 直接上干货 问题描述 root zhouls virtual machine apt get install vim Reading package lists DoneBuilding dependency tree Readin
  • GPT-3 模型特点

    Overview 模型 描述 GPT 3 一组能够理解和生成自然语言的模型 Codex Limited beta 一组可以理解和生成代码的模型 包括将自然语言转换为代码 Content filter 一种经过微调的模型 可以检测文本是否敏感
  • 插入排序总结

    插入排序 Insertion Sort 的算法描述是一种简单直观的排序算法 它的工作原理是通过构建有序序列 对于未排序数据 在已排序序列中从后向前扫描 找到相应位置并插入 排序思路 假设按照升序排序 1 从索引为1的元素开始向前比较 一旦前
  • activiti7-1-环境准备(idea)

    activiti7环境准备 1 首先安装插件 2 然后建库 3 pom 4 配置文件 4 1 log4j properties 4 2 activiti cfg xml 5 测试类生成表 6 目录结构 7 最后的操作 务必看一看 又回到cs
  • 用matlab解决多重共线性问题,多重共线性和非线性回归的问题

    前几天她和我说 在百度里有个人连续追着我的回答 三次说我的回答错了 当时非常惊讶 赶紧找到那个回答的问题 看看那个人是怎么说 最终发现他是说多重共线性和非线性回归的问题 他认为多个自变量进行不能直接回归 存在共线性的问题 需要进行因子分析
  • 数据可视化笔记9 可视化交互与评估

    概括 交互的概念 交互准则 交互延时 交互成本 交互场景变化 可视化交互的主要类型 分类 选择 再布局 视觉编码 抽象化 具体化 过滤 链接 交互模型 概览 细节 焦点 上下文 对偶界面 多种混合交互方式 混合多种交互设备 交互空间 屏幕空
  • IDEA连接mysql又报错!Server returns invalid timezone. Go to ‘Advanced‘ tab and set ‘serverTimezone‘ prope

    目录 错误界面 解决方案 第一 设置mysql时区 第二 同步mysql驱动 前进的道路充满荆棘 错误界面 IDEA连接mysql 地址 用户名 密码 数据库名 全都配置好了 点测试连接 咔 不成功 界面是这样的 翻译过来就是 服务器返回无
  • 1345:香甜的黄油(Dijkstra)---信息学奥赛一本通

    题目描述 农夫John发现做出全威斯康辛州最甜的黄油的方法 糖 把糖放在一片牧场上 他知道N 1 N 500 只奶牛会过来舔它 这样就能做出能卖好价钱的超甜黄油 当然 他将付出额外的费用在奶牛上 农夫John很狡猾 像以前的巴甫洛夫 他知道
  • java中的file.encoding属性到底由什么决定?

    首先先上一段代码 public class PropertiesTest public static void main String args System out println file encoding System getProp
  • CentOS7 中把yum源更换成163源

    CentOS默认yum源是国外的 速度无法保证 用起来很不爽 今天我们把默认源换成国内的163源 163是目前国内最好用的源 速度是相当快的 还有一些比较好的源 比如阿里源 1 首先我们把CentOS7配置为可以上外网的环境 这里不会的可以
  • Python requests下载超大文件/批量下载文件

    一 下载超大文件 使用 python 下载超大文件 直接全部下载 文件过大 可能会造成内存不足 这时候要使用 requests 的 stream 模式 主要代码如下 iter content 一块一块的遍历要下载的内容 iter lines
  • Android 键盘小设置

    键盘设置主要是对activity页面的控制 清单文件对应的activity配置如下 弹出键盘 上移屏幕 android windowSoftInputMode stateVisible adjustResize 弹出键盘 覆盖屏幕 andr
  • 眼图测量

    百度百科 1 眼图测量解释 https baike baidu com item E7 9C BC E5 9B BE E6 B5 8B E9 87 8F 5938447 fr aladdin
  • YOLO算法v1-v3原理通俗理解

    YOLO算法v1 v3原理通俗理解 深度学习检测方法简述 我们所使用的目标检测 其实就是让机器在图片找到对应的目标 然后给图片上的目标套上一个框框 并贴上标签 比如如果图片上有人 就把人框起来并标注一个 person 使用深度学习进行目标检
  • Python学习第八天——模块

    模块 一 什么是模块 模块是一系列功能的集合体 1 模块分为四种类别 一个 py就是可以是一个模块 包 就是一个存放 init py文件的文件夹 使用C编写并链接到Python解释器的内置模块 已被编译为共享库或DLL的C或C 扩展 2 模
  • 量子速写(网站+小程序)

    使用方法非常简单 只需要输入标题 选择文章长短 它就能给你生成一篇AI文章 nbsp nbsp nbsp nbsp 泪奔 它是根据能在网上搜到的相关信息 进行AI组合的 所以不涉及侵权 并且写的合情合理 nbsp nbsp nbsp 加大难
  • 学姐去微软了

    这篇文章是我邀请在微软工作的学姐写的 最近正好是金九银十校招季 所以我邀请学姐写下当年她面试时的一些经验 希望对大家有帮助 自我介绍 烤冷面 女 hitCS专业本 硕 2018年之前没有PM实习经验 2018年暑期实习拿到腾讯和微软的PM岗
  • 如何查看和修改Windows远程桌面端口

    Windows远程桌面的默认端口为3389 基于安全性考虑 部分用户有修改默认端口的需要 以减少通过远程桌面恶意攻击和扫描主机的次数 因此今天带大家一起学习下 如何查看和修改Windows远程桌面的默认端口 一 查看Windows远程桌面端
  • HTML from 表单提交请求到servlet 实例

    HTML源码展示
  • ads+jlink和keil+jlink调试环境配置

    ads1 2 and jlinkv8 1 安装ads1 2和jlink驱动Setup JLinkARM V408i exe 安装ads1 2时 最后在100 时如果持续时间长 耐心等一下吧 没有等待而点了cancel 则之后就不好重装了 解