历史上的今天
返回首页

历史上的今天

今天是:2024年12月05日(星期四)

正在发生

2019年12月05日 | AVR开发 Arduino方法(附一) 工具链与调试技术

2019-12-05 来源:elecfans

前文中所有代码都可以使用Arduino IDE编译通过,电路图都是使用Fritzing绘制的。Arduino IDE和Fritzing都可以运行在多种操作系统上,可以通过以下方式获取它们:

1. Arduino IDE

在浏览器中访问https://www.arduino.cc/en/Main/Software:

找到“Download the Arduino IDE”,根据自己的操作系统下载相应版本的Arduino IDE即可。如果你使用的是Windows操作系统,建议选择“Windows Installer”版本,可以省去安装驱动程序的麻烦。


Arduino IDE安装完成后,还需要对它的配置文件进行一些修改,以便进行调试。打开Arduino IDE的配置文件(配置文件的路径可以通过“文件”菜单打开“首选项”对话框找到),在文件末尾添加:


1 build.path=yourpath


将yourpath替换成你希望Arduino IDE生成文件的位置,例如“/home/blu/文档/arduino”:

2. Fritzing

在浏览器中访问http://fritzing.org/download/:

根据自己的操作系统下载相应版本的Fritzing即可。

3.适用于Windows操作系统的调试工具

(1) 使用Proteus进行软件调试

打开Proteus软件,将ATMEGA328P放置到原理图区域中:

双击放置的ATMEGA328P,打开“编辑元件”对话框:

点击“Program File”文本框右侧的“打开”按钮,找到编译的.elf文件;将“CLKDIV(Divide clock by 8)”设置为“(1)Unprogrammed”;再将“CKSEL Fuses”设置为“(1111)Ext. Crystal 8.0MHz”;最后将“Advanced Properties”中的“Clock Frequency”设置为“16MHZ”;


点击“调试”菜单中的“开始/重新启动调试”,会打开“AVR Source Code”和“AVR Variables”对话框,从中可以查看程序源代码以及变量值的情况:

从“AVR Source Code”对话框中找到主函数,找到setup()函数和loop()函数的调用语句,双击打上断点,运行到断点处,就可以开始调试了:

(2) 使用Visual Studio进行硬件调试

安装带有C++组件2012或更新版本的Visual Studio后,在http://www.visualmicro.com/page/Arduino-Visual-Studio-Downloads.aspx中下载Visual Micro插件,双击安装;


插件安装完成后第一次打开Visual Studio,会弹出“Configure Ide Locations”对话框,在对话框中指定Arduino IDE的版本和安装路径,点击“OK”按钮;


在Visual Studio的“新建”菜单中新建一个“Arduino Project”,将Arduino连接到计算机上;然后在工具栏中选择正确的开发板型号和端口号,就可以像调试本地C++应用程序一样在Arduino上调试程序了。

4. 适用于Linux操作系统的调试工具

在Linux操作系统下调试Arduino程序需要以下软件包:simulavr,gdb-avr和ddd,其中ddd是可选的软件包,它提供调试器的前端界面。请使用包管理器安装它们和它们依赖的软件包。

安装完成后,在终端中执行命令:simulavr -L,这会打印simulavr支持的微控制器列表:

列表中没有ATMega328P,但Arduino IDE可以支持ATMega8。因此在终端中执行命令:simulavr -d atmega8 -g -p 4242。在4242端口启动一个ATMega8虚拟机:

在Arduino IDE的“工具”菜单下的“开发板”子菜单项中选择“Arduino NG or older”,在“处理器”子菜单项中选择“ATMega8”,重新编译项目。在生成目录下打开一个新的终端窗口,执行命令:ddd --debugger avr-gdb ./Blink.ino.elf,这会打开DDD窗口:

在init()函数上设置断点,并在底部命令窗口中依次执行命令:


1 target remote localhost:4242

2 load


将程序上传到ATMega8虚拟机中。点击“Cont”(Continue的缩写)按钮,程序会跳转到主函数的位置,就可以开始调试了:

推荐阅读

史海拾趣

Dicon Fiberoptics Inc公司的发展小趣事

作为一家具有高度责任感的企业,DiCon长期以来一直致力于为国防工业提供高质量的光纤通信产品。公司的首批产品之一FDDI交换机在许多海军舰艇上部署了30多年,为国家的安全稳定做出了重要贡献。这一里程碑事件不仅彰显了DiCon在光纤通信技术领域的实力,也进一步提升了公司的品牌形象和市场地位。

Global Navigation Systems公司的发展小趣事
安装远程无线防盗报警系统时,首先需要将入侵探测器安装在需要防范的门窗等位置,并确保其能够准确检测到异常情况。然后,将微型无线报警发射机安装在探测器附近,并确保其能够接收到探测器的信号并发射出去。最后,将无线报警接收控制器安装在便于监控和接收报警信息的位置,并进行相应的调试和设置。在安装过程中,需要注意避免电磁干扰和信号衰减等问题,确保系统的稳定性和可靠性。
Cambridge Electronic Industries Ltd公司的发展小趣事

随着公司实力的增强和产品线的丰富,CEI开始积极寻求市场拓展的机会。公司不仅在国内市场取得了显著的成绩,还开始拓展国际市场。CEI与国际电子巨头建立了紧密的合作关系,共同研发新产品,分享技术和市场资源。这些合作不仅提升了CEI的技术水平和市场竞争力,也为其带来了更广阔的发展空间。

广东爱晟电子(exsense)公司的发展小趣事

广东爱晟电子自成立以来,一直致力于NTC热敏电阻技术的研发和创新。在2010年代初,公司面临技术瓶颈,市场竞争激烈。然而,爱晟电子团队不畏艰难,通过深入研究,成功研发出具有更高精度和稳定性的NTC热敏电阻。这一技术突破迅速获得了市场的认可,公司销售额逐年攀升,奠定了在电子行业的领先地位。

ADLINK公司的发展小趣事

随着业务的不断拓展,爱晟电子意识到品质是品牌的核心。公司引进了先进的生产设备和管理体系,严格按照ISO9001质量体系运作,确保产品质量的稳定性和可靠性。同时,公司还加强了对原材料的质量控制,与国内外优质供应商建立了长期稳定的合作关系。这些举措使得爱晟电子的产品在市场上赢得了良好的口碑,品牌影响力逐渐增强。

APSA公司的发展小趣事

随着全球电子市场的不断扩大,APSA公司开始实施全球化战略。公司先后在多个国家设立分支机构,拓展国际业务。通过与全球客户的合作,公司的产品线不断丰富,市场份额也逐渐提升。

问答坊 | AI 解惑

中国版黑莓手机实现本土生产 中移动负责销售 是福是祸?

本帖最后由 jameswangsynnex 于 2015-3-3 20:01 编辑 昨日,加拿大RIM公司中国区总经理刘征宇透露,公司从来不自行制造手机,首批面向中国用户的BlackBerry(黑莓)手机将全部实现本土生产。 当被问及怎样看待中国移动手机邮箱业务时,刘征宇表示 ...…

查看全部问答>

QUARTUSII 中文详解

本帖最后由 paulhyde 于 2014-9-15 09:20 编辑 顶啊  …

查看全部问答>

我06年做的at91rm9200的arm9开发板全套资料

http://www.08680.com/dw/cd_rom.rar 希望对大家有点帮助。 成品没有了,只有29片空pcb。…

查看全部问答>

求救!!!51单片机模拟乒乓球比赛

用8个LED发光管(4红4绿)的来回滚动显示模拟打乒乓球时,乒乓球在两边球台上的来回运动。比赛双方用按按钮(双方各用一个按钮)的方法来模拟发球与接球,即发球方按动其控制的按钮,球从发球方一侧向对方运动(LED发光管从发球方到对方逐个点亮, ...…

查看全部问答>

请教关于模拟采集的超过11V时,如何检测

  希望采用差分电路采集高压的浮地信号,但是AI的测量范围是11V。需要怎么做 …

查看全部问答>

智能卡管理系统

一个预研究方案的设想~…

查看全部问答>

南华大学黄智伟系列--电子设计竞赛作品制作过程中故障检测的一般方法

本帖最后由 paulhyde 于 2014-9-15 09:31 编辑     竞赛作品在制作过程中出现故障是不可避免的,故障检测和检修是调试工作的一部分。掌握一定的故障检测和检修方法,可以较快地找到产生故障的原因,使检修过程大大缩短。故障检测和 ...…

查看全部问答>

程序员的十层楼(转)

第1层 菜鸟 第1层楼属于地板层,迈进这层楼的门槛是很低的。基本上懂计算机的基本操作,了解 计算机专业的一些基础知识,掌握一门基本的编程语言如C/C++,或者Java,或者 JavaScript,...,均可入门迈进这层。 在这层上,中国有着绝对的优势 ...…

查看全部问答>

学模拟+工业远距离通信使用的RS-232至RS-485转换器

本帖最后由 dontium 于 2015-1-23 11:46 编辑 远距离或多个RS-232应用之间实现RS-232数据传输,使用RS-232到RS-485转换,延长RS-232数据传输距离实现多总线节点连接,要通过接口转换器转换为RS-485信号,从而具有较高的共模噪声抗扰性。学到了 ...…

查看全部问答>