您好、欢迎来到现金彩票网!
当前位置:秒速牛牛官方网站 > 调试例程 >

仿真器调试程序

发布时间:2019-06-16 09:49 来源:未知 编辑:admin

  请问大家,如何调试啊,用STC的习惯了,直接串口,最近用别的芯片,带JTAG,可以在线调试,但是不知道咋用,只用到下载功能了,如何调试中断、外部器件等功能啊,希望提供帮助,+++++...

  请问大家,如何调试啊,用STC的习惯了,直接串口,最近用别的芯片,带JTAG,可以在线调试,但是不知道咋用,只用到下载功能了,如何调试中断、外部器件等功能啊,希望提供帮助,+++++

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部你改用ARM么,例如STM32?ARM的JTAG调试需要用专用的调试器,例如JLINK(支持全系列ARM),ULINK(只能用于ARM 7, 9, STM32等,11和A8不能用),STLINK(v2版,支持STM8和STM32),你用的哪个?ARM的(软件)调试,无非就是以下几种手段:1. 传统的串口方式调试你应该熟悉,不多说了2. Semihosting调试就是printf,scanf这些语句,借助调试器输入/输出信息。你可以直接在程序里面写printf,结果会输出到调试器的semihosting窗口中,也可以在里面输入信息,通过scanf读取,就像是控制台一样。STM32有自己的,类似semihosting的实现,好像叫itm什么的来着。

  ARM开发比较强大的就是这些功能了,能够方便地追踪程序的执行流程,观察执行过程中系统的状态。因为ARM功能强大,程序要比51复杂很多,因此对调试也有更高的要求。这些跟踪调试手段能够很方便地追踪程序中逻辑上的错误,比串口输出方式效率要高很多。它的缺点是无法调试对时序要求比较严格的代码,例如USB通讯相关的。如果配合串口输出调试那些操作硬件,时序要求比较严格的代码,就能达到优势互补的效果,极大提高调试效率。

  具体的使用方法,得看你用的开发环境。一般来说无非就是以下几步:连接硬件,设置芯片使能JTAG(例如AVR等的熔丝位)和JTAG调试的一些参数(例如JTAG频率等),最后在开发环境中进行设置断点,单步运行等操作。

  如果你不是用ARM的,而是AVR,PIC,C8051F等,也是类似,除了没有Semihosting以外,其他的都可以用。重点是第3条。

  追问比如STM32为例,怎么调试中断啊,如何进中断,还有比如外部接个ADC,如何在线调试,接收信号;此外在线调试时候,如果修改一条语句后,时候需要重新编译追答你在中断里面下断点就可以进入中断了。不建议使用这类手段来调试非软件中断和外设。因为它们往往有时序要求,调试的时候会影响时序而造成结果的错误。对这类问题,推荐用semihosting方式,打印数据来调试,或者使用你熟悉的,传统的串口输出调试信息。

http://sec-ir.com/diaoshilicheng/387.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有