tag 标签: j-link

相关帖子
相关博文
  • 热度 28
    2014-6-6 10:39
    4636 次阅读|
    0 个评论
        CYUSB3014芯片内含一个标准的ARM9内核,当然可以用标准的JTAG口来调试仿真程序。官方推荐用J-LINK来调试基于ECLIPSE的固件程序,如果用ARM公司的其它的仿真工具,可能需要用户自己去配置ECLIPSE,以适应新的调试工具。这里以J-LINK为例,简单说明如何用调试仿真USB3的固件程序。       首先将J-LINK与开发板相连,上电,启动J-LINK的软件SEGGER J-LINK GDB SERVER,画面如下,           如果你的板子没有如上图显示的那样,识别出ARM9内核,那电路板可能就有问题了,接下来的步骤就无法再进行了。        还有一点要说明的是,以前发布的原理图在JTAG这一点上有错误,那五个上拉下拉电阻都可以省略不用,因为3014芯片内部本身已经有这些东西了。如下图,           打开ECLIPSE导入一个例程,这里导入最简单的GPIO的例程。如何导入例程,请查看我以前的帖子,有详细的介绍。导入后如下图所示:          接下来需要设置与J-LINK相关的选项,见下一篇文章。另公布一群号178338109,CYUSB3014开发专业讨论区。     我的博客: http://bbs.ednchina.com/BLOG_liangziusb_440752.HTM 淘宝店铺: http://shop64171919.taobao.com 良子.2013年    承接USB开发工程 代写USB毕设 QQ:2687652834    392425239
  • 热度 16
    2014-6-6 10:39
    2709 次阅读|
    0 个评论
             接上一篇。         这里主要是对ECLIPSE与J-LINK相关的设置。首先导入现有的例程,以最简单的驱动IO的例程GpioApp为例,先选中这个工程,再右键,弹出如下快捷菜单,        弹出调试配置页面,如下所示,选择左侧最下面一项,       接下来再双击刚才选择的那项,出现所选择例程GpioApp对应的配置,如下,          接下来设置Debugger一项,共有几个需要修改的地方,如下,        最后是Commands选项卡需要如下设置,          其中第二个框输入的命令较多的,直接拷贝以下命令就可以, set prompt (arm-gdb) # This connects to a target via netsiliconLibRemote # listening for commands on this PC's tcp port 2331 target remote localhost:2331 monitor speed 1000 monitor endian little set endian little monitor reset # Set the processor to SVC mode monitor reg cpsr =0xd3 # Disable all interrupts monitor memU32 0xFFFFF014 =0xFFFFFFFF # Enable the TCMs monitor memU32 0x40000000 =0xE3A00015 monitor memU32 0x40000004 =0xEE090F31 monitor memU32 0x40000008 =0xE240024F monitor memU32 0x4000000C =0xEE090F11 # Change the FX3 SYSCLK setting based on # input clock frequency. Update with # correct value from list below. # Clock input is 19.2 MHz: Value = 0x00080015 # Clock input is 26.0 MHz: Value = 0x00080010 # Clock input is 38.4 MHz: Value = 0x00080115 # Clock input is 52.0 MHz: Value = 0x00080110 monitor memU32 0xE0052000 = 0x00080015 # Add a delay to let the clock stabilize. monitor sleep 1000 set $pc =0x40000000 si si si si         以上内容设置完成后,就可以进入Debug模式了,你可以单步、设置断点操作,随时查看某个函数的执行。         另公布一群号178338109,CYUSB3014开发专业讨论区。   我的博客: http://bbs.ednchina.com/BLOG_liangziusb_440752.HTM 淘宝店铺: http://shop64171919.taobao.com
  • 热度 19
    2010-10-16 17:17
    3289 次阅读|
    3 个评论
    ADuC7026是美国ADI公司ADuC70xxARM系列中最典型的一种,其最大特点是具有一路12通道、12bit、速度达1MSPS的ADC;4路12bit的DAC;以及可编程逻辑阵列(PLA)等。 1、 ADuC7026的SPI口只有8位,只能与8位外部SPI接口器件通信。如果外设SPI口是16位的,如AD9833(DDS),则只有采用普通I/O方式仿真SPI口进行通信。 2、ADuC7026所有I/O专用置“1”、清“0”寄存器GPxSET/GPxCLR都是“只写”的,不能读!如果读,输入为全“1”(“FF”),不是实际的输出状态。因此在C语言中只能使用: GPxSET(或GPxCLR) = xx;直接赋值,而不能使用: GPxSET(或GPxCLR) |= xx; 因为“|="复合运算符是先读入,在”或“运算,然后赋值(写)。如果使用”|=“,则因读入值为”FF“,运行后写入寄存器的是全”1“,相当于将”xx“I/O口所有位置”1“(或清”0“)了。 3、与所有ARM处理器一样,ADuC7026的外部中断也是电平触发,高电平有效。电平触发比边沿触发要可靠些,不易产生误中断(特别在中断信号有毛刺时),但要注意在退出中断处理程序前要撤销中断源的中断请求,否则会连续触发。如果确要使用边沿触发,可使用外部逻辑电路(或ADuC7026内部PLA将外部触发信号的边沿检测出来,产生宽度不小于4.5us的正脉冲送到ADuC7026即可,ADuC7026本身还是电平触发(无法改变的!)。 4、IRQSTA与IRQSIG的区别:IRQSTA是使能中断状态寄存器,表示当前”已经使能的“中断源状态;IRGSIG是中断状态寄存器,主要反映外部中断引脚IRQSIG0~3上的电平状态。 因此,如果是查询外部中断,最好使用IRGSIG,如果是查询内部中断(如定时器、串口等),则一般都使用IRGSTA。 5、用J-Link全功能ARM仿真器时,发现在KARM(Keil C for ARM)调试时无法将编译后的程序写入Flash中,但用驱动程序自带的J-FlashARM工具就可以。 后经试验发现是驱动程序装了最新版的V4.10i,改装较老版本V4.08i的就可以了。其原因是所用J-Link仿真器是国内仿制品,缺少支持最新版驱动V4.10i的License,因为KARM调试加载Flash时需要仿真器的License。 5、使用KARM v2.42调试ADuC7026的串口通信程序时没有任何问题,但改用MDK v4.02时,串口通信程序收发数据都不正确。 后经分析发现是串口通信程序UART.c中没有对系统时钟初始化,而是使用系统自带的启动文件”startup.s“(KARM)或"ADuC702x.s"(MDK)中的初始化程序。但这2个程序的初始化有些不同。前者分频参数CD=0;后者CD=1。相当于系统时钟前者为41.78MHz,后者为20.89MHz。这样,UART.c中使用相同参数设置波特率时,两者的实际波特率正好差1倍,如果上位机波特率不变,当然通信就有问题了。
相关资源