IAR for AVR 编译的程序,程序指针疑似跑飞了。 [问题点数:150分]

Bbs1
本版专家分:57
结帖率 97.5%
Bbs1
本版专家分:57
你的单片机程序飞了,原因在这!
单片机<em>程序</em>死机,跑<em>飞了</em>可以从以下几个方面查找原因:1. 意外中断。是否打开了某个中断,但是没有响应和清除中端标志,导致<em>程序</em>一直进入中断,造成死机假象。2. 中断变量处理不...
MSP430程序跑飞原因
MSP430单片机的<em>程序</em>有时候容易出现跑飞的情况,导致运行不正常。常见原因总结如下: 没有设置停止看门狗,也没有及时喂狗 没有定义中断函数,但又开启了对应的中断,发生中断时,找不到中断函数入口 供电电压不稳,或IO管脚输入过大电压,导致内部数据受到干扰 内存溢出,比如使用sprintf之类的函数很容易出现这种问题 本文由PurpleSword(jzj1993)
AVR在IAR中将常量仅定义在FLASH上的细节
1)看一个普通的定义 不用说,这种情况是肯定是test是在RAM中了 char test[] = "Put String In Flash";如果是ARM平台的话,加个const就放到FLASH中了const char test[] = "Put String In Flash";但是在AVR中是行不通的,你会发现定义了这一行之后FLASH和RAM同时增加了(如果没有被<em>编译</em>器丢弃的话,
嵌入式调试ARM程序跑飞现象的跟踪
最近在调试2410的过程中,经常出现<em>程序</em>跑飞的现象,跟踪进行后发现。。。所以决定把它记录下来。 现象: 调试用的是技创ARM仿真器(兼容multi-ICE)和ADS1.2,板子外扩NandFLASH(装有Bootload)和SDRAM。当将<em>程序</em>烧到FLASH运行时会出现无规律的死机。用仿真器仿真时情况是这样:当CPU复位后,第一次装载<em>程序</em>执行时,情况与烧到FLASH运行时一样。但如果将运行的程
STM32 jtag调试程序程序跑飞
问题描述:在使用jtag对某软件进行调试的时候,
程序跑飞原因分析
通常我们<em>程序</em>跑飞的原因有以下几个方面:  1,memset/ memcpy使用错误  错误代码  aucCpyLength=NAME_DATA_LENGTH- ((wucCdTextCmdBufferPara.stTagCmdPara.ucPageNo+1)*TAG_PAGE_LENGTH);  memset(pucCpyDestAdress + TAG_PAGE_LENGTH,0x00,
单片机程序跑飞的原因
1.意外中断。 是否打开了某个中断,但是没有响应和清除中端标志,导致<em>程序</em>一直进入中断,造成死机假象。 2. 中断变量处理不妥。 若定义某些会在中断中修改的全局变量,这时要注意两个问题:首先为了防止<em>编译</em>器优化中断变量,要在这些变量定义时前加 volatile,其次在主循环中读取中断变量前应该首先关闭全局中断,防止读到一半被中断给修改了,读完之后再打开全局中断;否则出现造成数据乱套。
IAR FOR AVR 定时器中断的使用
首先看下在<em>iar</em> 里面 iom16.h里面的中断向量表 /* NB! vectors are specified as byte addresses */ #define    RESET_vect           (0x00) #define    INT0_vect
IAR FOR AVR中精确软件延时方法
IAR FOR AVR中精确软件延时方法 注意: __delay_cycles(x),x必须是常量或则是常量表达式,如果是变量则<em>编译</em>报错! 在用单片机的时候常常会用到延时函数,430也不例外,常见的形式有: void delay(unsigned int ms) { unsigned int i,j; for( i=0;i for(j=0;j } 复制代码//以上
AVR单片机开发软件 IAR FOR AVR!
百度网盘链接:http://pan.baidu.com/s/1mhOJRTm 密码:898q技术支持 : 741684134这个是IAR 安装包,里面有破解文件,安装破解时,,一定要用管理员运行CMD命令 !AVR单片机开发平台,简洁高效的开发软件!软件包内包含安装破解攻略!中文版用户使用手册!XP,WIN7,WIN8,WIN10,已经安装测试通过!泰力电子 www.tempX.cn ...
【堆栈和栈溢出】MSP430 数组填充越界引起的栈溢出 导致程序跑飞
  1、栈区(stack)— 由<em>编译</em>器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由<em>程序</em>员分配释放, 若<em>程序</em>员不释放,<em>程序</em>结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。 //main.cpp  int a = 0; 全局初始化区  char *p1; 全局未初始化...
使用 IAR for AVR 时需要注意的几个地方
在AVR所有的<em>编译</em>器中,IAR for AVR 是<em>编译</em>效率最高的<em>编译</em>器, 但是相对来说IAR for AVR的设置项也非常多,如果使用不当反而会出现很多莫名其妙的问题.       一. 关于堆栈的设置问题     GCC和IAR分配堆栈的方式不同,IAR先分配堆栈空间,相
IAR for AVR 学习笔记
IAR for AVR 学习笔记(1)--数据类型 数据类型(<em>编译</em>器支持 ISO/ANSI C 基本数据类型和一些附加数据类型) 1.1. 整型数据 bool 数据类型在C++语言里是默认支持的。如果你在C代码的头文件里包含stdbool.h, bool数据类型也可以使用在C语言里。也可以使用布尔值 false和 true。 1.2.浮点数据类型: 1
程序跑飞的原因与解决办法(转载)
-
IAR编译器下程序后跑不到main函数的问题
作为新手最近遇到IAR<em>编译</em><em>程序</em>Ok。使用仿真器在线仿真,下<em>程序</em>后无法运行到main函数,仿佛进入死循环。     在网上查了很多资料。试了一些方法。最终将问题锁定在启动<em>程序</em>中看门狗复位。解决办法是将IAR中的cstartup.s43(IAR Systems\Embedded Workbench 8.0\430\src\lib\430)文件复制到自己的工程文件中,并添加进工程。在文件开头处添加#d
使用ICC AVR和AVR STUDIO的一些差别
列出ICC AVR 过渡到 AVR STUDIO时要注意的几个问题 1.头文件更改 ICCAVR使用的是“#include ” AVR STUDIO更改为“#include ” 在ICC中使用不同MCU的头文件是不同的,在AVR studio中所有MCU的头文件都用“#include ” 2.AVR studio中延时函数可直接使用“#include ”头文件中的延时函数: void
IAR for AVR 历史版本说明总结(为你的例子程序找到对应的编译版本)
起因: 下了一个Atmel的例子<em>程序</em>,发现使用IAR环境,搜索时发现IAR for AVR的版本挺多的,不知道用哪一个版本,网速也慢,也没有对应说明,挺苦恼。 过程: 头文件中倒是说使用的是IAR EWAVR 5.2<em>编译</em>,下载了一个5.20的,仍提示<em>程序</em>版本太新,打不开。 于是下载了最新评估版的,提示需要转换。转换后可以打开。 但是评估版的毕竟受限(30天)。 鉴于网上并没
教你如何找到导致程序跑飞的指令
教你如何找到导致<em>程序</em>跑飞的指令 摘自:自blog.sina.com.cn/ifreecoding 调试嵌入式<em>程序</em>时,你是否遇到过<em>程序</em>跑飞最终导致硬件异常中断的问题?遇到这种问题是否感觉比较难定位?不知道问题出在哪里,没有办法跟踪?尤其是当别人的<em>程序</em>踩了自己的内存,那就只能哭了 今天在论坛上看有同学求助这种问题,正好我还算有一点办法,就和大家分享一下。 解决办法非常非常简单,本文
IAR for AVR中的位定义使用
目的:打开IAR for AVR中的位定义 在单片机的编程中,经常会遇到 UCSRB = (1 查看定义可以在头文件中看到#define    TXEN     3。 表示的是(1 方法: 这里说明一下如何在IAR这个<em>编译</em>环境中如何打开位定义。 在c文件的之前加入ENABLE_BIT_DEFINITIONS的定义即可。 #define ENABLE_BIT_DEFINITIONS
单片机程序死机跑飞查找原因
单片机<em>程序</em>死机,跑<em>飞了</em>可以从以下几个方面查找原因:     1. 意外中断。是否打开了某个中断,但是没有响应和清除中端标志,导致<em>程序</em>一直进入中断,造成死机假象     2. 中断变量处理不妥。若定义某些会在中断中修改的全局变量,这时要注意两个问题:首先为了防止<em>编译</em>器优化中断变量,要在这些变量定义时前加volatile,其次在主循环 中读取中断变量前应该首先关闭全局中断,防止读到一半被中断给修改了,...
IAR for AVR设置生成HEX文件
原文地址::http://blog.163.com/lbc_tl@126/blog/static/7245120720108311212871/ 相关文章 1、IAR中如何生成hex文件----http://blog.sina.com.cn/s/blog_69871f290100jrxg.html  刚刚接触IAR for AVR,苦于不能生成HEX文件,通过摸索,生
icc到iar移植日志
注意IAR中对unsigned char和signed char的比较同样douhsi
FPGA状态机跑飞原因分析
主要感谢FPGArun群里的9神和狐狸:
avr ATMEG16 IAR 例程
这是一个关于atmega16的例程,采用的<em>编译</em>器为IAR.<em>程序</em>中,没有多用扩展的关键字,基本都是用标准C的基本语法实现的,其移植性高,通用性有一些。大都经过本人测试,若能帮到大家,将使我不胜荣幸!
qt程序跑飞
系统不弹出崩溃提示,<em>程序</em>自行关闭了 原因:信号槽连接时连接了不存在的槽函数,如 connect(ui.checkBox, SIGNAL(stateChanged(int)), this, SLOT(on_check(int))); 采用上述方式连接信号槽有风险,<em>编译</em>时无法检查信号槽函数的正确性。 建议改用下述方式: connect(ui.checkBox, &amp;amp;QCheckBo...
貌似程序飞了。。。
CCS3.1 环境下,代码<em>编译</em>通过了。但是执行到某段代码时出现如下错误:rnTrouble running Target CPU: Illegal opcode (00000002) at pc = 0x0004b390rnTrouble running Target CPU: Illegal opcode (00000002) at pc = 0x0004b390rnTrouble running Target CPU: Illegal opcode (bc6a7efa) at pc = 0x0004b498rnTrouble running Target CPU: Illegal opcode (bc6a7efa) at pc = 0x0004b4a0rnTrouble running Target CPU: Illegal opcode (403e0000) at pc = 0x0004b3bcrnTrouble running Target CPU: Illegal opcode (eb851eb8) at pc = 0x0004b3c0rn这是传说中<em>程序</em>跑<em>飞了</em>的情况吗?rnLz小白,刚上手CCS,望大神指导[img=http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/2.gif][/img]rnrn
AVR单片机EEPROM学习
生活中我们经常会犯眼高手低的毛病,很多东西看着别人弄很容易,但轮到自己的时候就会发现其实没有想象中的简单。学完51单片机时,我以为小小的单片机无非就是进行一些IO口的控制罢了,但今天在进行AVR系列单片机学习的时候,才发现原来单片机还有很多的不同,自己原来掌握的东西还远远不足,所以无论到什么时候只有虚心学习,不断努力才能真正的掌握一门技术,学习的过程也是自己人格丰富的过程。下面来说说对EEPROM
IAR编译器的常见问题
最近因为项目需要开始使用IAR for AVR,我用的是5.40版本的,主要是5.40以上才包括了aTtiny87,至于安装文件和和谐文件,大家自己找吧,很好找的。         1.<em>编译</em>报错如图所示: 很显然你没有使能寄存器的位定义。方法如下:Project ——> Option ——> General Options ——> System(如下图所示),勾选 Enable bi
AVR单片机(ATMEGA16)串行收发程序
#include #include #define uchar unsigned char #pragma interrupt_handler SerialService:12 uchar rtemp,sflag; void SerialInit(void) { UCSRB=(1<<<<TXEN); //置一接收结束中断使能、接收使能、发
AVR BOOTLOADER 实例开发笔记
AVR BOOTLOADER 实例开发笔记 写了一个基于Atmega8 的Bootloader应用实例,其间遇到了一些问题,下面把过程和问题叙述如下,供朋友们参考。工程实例的代码在XXXXXXXX,也包含了一个C#的配套烧录<em>程序</em>,欢迎有兴趣的朋友们下载。 1、 准备一个目标<em>程序</em>(被加载的应用<em>程序</em>),一般环境<em>编译</em>生成的结果是Hex文件,而写进Flash的是Bin文件。二者转换其实很简单,去掉He
AVR单片机ATMEGA16编译软件ICCAVR的使用技巧与应用示例
一、先来一段朴实的独白吧        写这篇文的时间是2018年3月21日。大学2013毕业,专业是机械,但喜欢电子。篇首声明:哪一行都有鄙视链,就连打个游戏都不例外。如果大神路过这里,请您show your mercy然后walk away就当nothing happened.  当然,大牛都是很低调的,因为他们身心都沉进编程的世界里不能自拨。好了本文就ICCAVR的使用说明作一个入门式的引导...
在vs code开发stm8程序
简介 很久没碰单片机这东东了,最近因为自己有需要,所以再次接触单片机。 单片机很多,有很多非常简单就可以开发的单片机,比如古老的51单片机。但我想要的是性价比更高的,很显然stm系列就非常好了。就stm8怎么高效开发谈一谈吧。由于功能太多了,开发过程会更令人厌烦。哪怕官方提供了标准库,但还是烦不胜烦,因为函数非常多,再加上官方的stvd开发软件的自动补全功能如此差劲,写一个简单<em>程序</em>都...
iar编译没有问题,但是烧录时不成功
【IoT】TI BLE CC254x 系统运行跑飞问题
1、背景 作为软件设计师,大家应该都遇到过系统莫名挂死或跑飞,今天笔者就该问题做一下总结,如果开发过程遇到可以作为参考。 2、问题梳理 2.1、意外中断 是否打开了某个中断,但是没有响应和清除中端标志,导致<em>程序</em>一直进入中断,造成死机假象或跑飞。 2.1.1、中断服务<em>程序</em>缺失 现象: <em>程序</em>运行过程中总是跑飞。 原因: <em>程序</em>中打开了某个中断,但是却没有相应的中断服务<em>程序</em>,从而导致在中...
如何查看IAR的程序占用多大的RAM和FLASH的使用空间
1. 打开IAR工程输出文件的文件夹,用记事本打开  &quot;.MAP&quot; 文件。 2. 在&quot;.MAP&quot; 文件的最后就可以看到 RAM 和 FLASH 的使用空间了。
STM32关于IAR和Keil中如何查看代码段的大小
今天在看IAP下载的时候发现需要知道自己<em>编译</em>出来的代码段的大小来设置FLASH的偏移量,在keil下<em>编译</em>默认是会显示<em>程序</em>的大小的: 可以清除的看到代码(Code)占了29704个字节,只读常量(RO-data)占6456个字节,已初始化的全局变量(RW-data)占64个字节,未初始化的全局变量(ZI-data)占62400个字节。那么哪些是存放在FLASH中,哪些是存放在RAM中呢
IAR中优化等级对Kinetis FGPIO执行速度的影响
在灯光控制、IO模拟Flex Bus等很多应用中,对GPIO的翻转速度有很高的要求,M0+内核中集成了一个特定的single-cycle I/O port,Kinetis中我们称之为Fast GPIO(FGPIO)。它可以完成对IO口的单周期load和store,主要的区别在于FGPIO的端口可以被内核零等待的访问,于是可以达到Core Clock的速度,而普通GPIO需要内核通过内部的cross
Iar工程编译和下载的使用教程
Iar工程<em>编译</em>和下载的使用教程 wangxl@20180807 安装<em>iar</em>6.4 解压CD-EWARM-6401-3812.zip按默认进行安装 解压key.zip进行注册 安装 j-link4.2 运行Setup_JLinkARM_V420.exe进行安装 2、安装完后打开 ,进行芯片测试,查看芯片是否焊接正常,正常则显示:Cortex-M3 indentified,如下图   三...
DSP程序跑飞的体会
我所知道的DSP<em>程序</em>跑飞的原因有: 硬件:1.复位电路不稳定;2.电源不稳定;3.地线不稳定。 软件:1.不小心操作到了子函数返回地址值。             2.数值溢出,读写了超过范围的存储空间,堆栈溢出等 。 我的<em>程序</em>是带有BIOS的<em>程序</em>,当<em>程序</em>跑飞后我就在主函数的最后一行设置断点,结果<em>程序</em>可以跑到主函数的最后一行,接下来就是初始化BIOS操作系统了,操作系统的源代码又是不可见的
IAR for AVR 永久破解版,Keygen
IAR FOR AVR 永久破解版,Keygen为生成密钥工具,具体操作可参照http://woshiyouyouchen.blog.163.com/blog/static/1039989420103159059665/
AVR读写IO口右一方法(借用ATmel)
//头文件 #ifndef __always_inline__ #define __always_inline__  _Pragma("inline=forced")inline #endif #define AVR_GPIO_ASSIGN(name, port, bit) \ __always_inline__ static void   GPIO_##name##_Set(v
Iar for avr v6.21
1、拷贝注册机到 安装目录如:c:\IAR Systems\Embedded Workbench 6.5\<em>avr</em>应该将Cracker 放置在<em>avr</em>的上层目录。这里应该是C:\IAR\Systems\Embedded Workbench 6.5下即可! 2、运行Cracker,单击patch!等待patch 按钮不可用即表示破解完成! 希望大家喜欢,呵呵!
IAR Embedded Workbench for Atmel AVR version 6.12.1 破解
IAR Embedded Workbench for Atmel AVR version 6.12.1 破解,本人亲自测试,安装成功。 === Install subdirectory: <em>avr</em> === IAR Assembler for AVR 6.12.1 (6.12.1.50500) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\a<em>avr</em>.exe 14/Jun/2012 05:51:32, 852992 bytes Translates Atmel assembler to IAR assembler 1.25 (1.2.4.109) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\atmel2<em>iar</em>.exe 29/May/2012 10:14:18, 1716224 bytes IAR C/C++ Compiler for AVR 6.12.1 (6.12.1.50500) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\icc<em>avr</em>.exe 14/Jun/2012 06:46:30, 11660800 bytes IAR C/C++ Compiler for AVR_TINY 6.12.1 (6.12.1.50500) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\icc<em>avr</em>_tiny.exe 14/Jun/2012 06:47:08, 9682944 bytes C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\postlink.exe 29/May/2012 10:14:18, 44544 bytes IAR Library Builder 5.3.2.26 (5.3.2.26) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\xar.exe 30/Mar/2012 11:58:48, 148480 bytes IAR XLIB 5.3.2.26 (5.3.2.26) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\xlib.exe 30/Mar/2012 11:58:48, 548864 bytes IAR Universal Linker 5.3.2.26 (5.3.2.26) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\xlink.exe 30/Mar/2012 11:58:48, 2338304 bytes IAR C-SPY CC ROM-Monitor Driver for AVR 6.12.1 (6.12.1.50500) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\<em>avr</em>ccr.dll 14/Jun/2012 06:34:24, 3783168 bytes IAR C-SPY ICE200 Driver for AVR 6.12.1 (6.12.1.50500) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\<em>avr</em>ice200.dll 14/Jun/2012 06:34:46, 3794432 bytes IAR C-SPY JTAGICE mkII Driver for AVR 6.12.1 (6.12.1.50501) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\<em>avr</em>jtagice-mkII.dll 15/Jun/2012 02:18:42, 4388352 bytes IAR C-SPY JTAGICE Driver for AVR 6.12.1 (6.12.1.50500) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\<em>avr</em>jtagice.dll 14/Jun/2012 06:35:04, 3778560 bytes IAR C-SPY JTAGICE3 Driver for AVR 6.12.1 (6.12.1.50500) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\<em>avr</em>jtagice3.dll 14/Jun/2012 06:51:52, 4289024 bytes IAR C-SPY Library Support Plug-in for AVR 6.12.1 (6.12.1.50500) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\<em>avr</em>LibSupport.dll 14/Jun/2012 05:52:52, 628224 bytes IAR C-SPY Library Support Plug-in for AVR 6.12.1 (6.12.1.50500) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\<em>avr</em>libsupportbat.dll 14/Jun/2012 05:51:36, 545280 bytes IAR C-SPY AVR ONE! Driver for AVR 6.12.1 (6.12.1.50500) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\<em>avr</em>one.dll 14/Jun/2012 06:49:34, 4296192 bytes IAR C-SPY Processor Descriptor for AVR 6.12.1 (6.12.1.50500) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\<em>avr</em>proc.dll 14/Jun/2012 06:03:28, 1391104 bytes IAR C-SPY Simulator Driver for AVR 6.12.1 (6.12.1.50500) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\<em>avr</em>sim.dll 14/Jun/2012 06:45:46, 5679616 bytes IAR Workbench Target Descriptor for AVR 6.12.1 (6.12.1.50500) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\cwtd<em>avr</em>.dll 14/Jun/2012 06:13:32, 973824 bytes IAR Workbench Target Descriptor for AVR 6.12.1 (6.12.1.50500) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\swtd<em>avr</em>.dll 14/Jun/2012 06:29:00, 1298944 bytes IAR Workbench Target Descriptor, AVR ONE!, for AVR 6.12.1 (6.12.1.50500) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\swtd<em>avr</em>_<em>avr</em>one.dll 14/Jun/2012 06:31:30, 800768 bytes IAR Workbench Target Descriptor, CC ROM-Monitor, for AVR 6.12.1 (6.12.1.50500) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\swtd<em>avr</em>_ccr.dll 14/Jun/2012 06:27:24, 778752 bytes IAR Workbench Target Descriptor, ICE200, for AVR 6.12.1 (6.12.1.50500) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\swtd<em>avr</em>_ice200.dll 14/Jun/2012 06:27:36, 807424 bytes IAR Workbench Target Descriptor, JTAGICE, for AVR 6.12.1 (6.12.1.50500) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\swtd<em>avr</em>_jtagice.dll 14/Jun/2012 06:27:50, 808960 bytes IAR Workbench Target Descriptor, JTAGICE3, for AVR 6.12.1 (6.12.1.50500) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\swtd<em>avr</em>_jtagice3.dll 14/Jun/2012 06:34:02, 800768 bytes IAR Workbench Target Descriptor, JTAGICE mkII, for AVR 6.12.1 (6.12.1.50500) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\swtd<em>avr</em>_jtagiceMkII.dll 14/Jun/2012 06:28:04, 825344 bytes IAR Workbench Target Descriptor, JTAGICE mkII Dragon, for AVR 6.12.1 (6.12.1.50500) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\swtd<em>avr</em>_jtagiceMkIIDragon.dll 14/Jun/2012 06:28:18, 795136 bytes IAR Workbench Target Descriptor, Simulator, for AVR 6.12.1 (6.12.1.50500) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\swtd<em>avr</em>_sim.dll 14/Jun/2012 06:28:32, 593920 bytes IAR Workbench Target Descriptor, Third-Party, for AVR 6.12.1 (6.12.1.50500) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\swtd<em>avr</em>_thirdparty.dll 14/Jun/2012 06:28:44, 597504 bytes wdapi 10.10 10.10 (10.1.0.0) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\win32\wdapi1010.dll 14/Oct/2009 00:44:18, 143360 bytes C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\win32\WinDriverStub.dll 02/Dec/2010 05:53:46, 9728 bytes wdapi 10.10 10.10 (10.1.0.0) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\wow64\wdapi1010.dll 14/Oct/2009 00:44:18, 143360 bytes C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\bin\wow64\WinDriverStub.dll 02/Dec/2010 05:53:46, 9728 bytes IAR C-SPY Simulator Plugin for AVR 6.12.1 (6.12.1.50500) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\config\plugin\xmega\xmega_eeprom.dll 14/Jun/2012 07:35:58, 26112 bytes Setup.exe 15.0.498 (15.0.0.498) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\drivers\Atmel\AVRJungoUSB.exe 23/Mar/2011 03:04:48, 4270520 bytes μC/OS-II = 2.87 KA Plug-in for C-SPY DLL 2.5.1 (2.5.1.0) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.dll 29/May/2012 10:13:08, 665088 bytes IAR STK600 Plug-in 1.0.4.0 (1.0.4.0) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\<em>avr</em>\plugins\Stk600Plugin\Stk600Plugin.dll 08/Jun/2012 04:39:42, 469504 bytes 安装<em>程序</em>下载地址见本人上传资源中。
《AVR ATMEGA128单片机C程序设计与实践 金钟夫》pdf 附下载链接
链接:https://pan.baidu.com/s/17TludUOou8OhXBpNgccFSQ 密码:rdtr 本书为完整版,以下为内容截图:
IAR for AVR v5.51
<em>编译</em>工具,里面有破解步骤讲解,,实测2018/4/20任然可用
IAR中生成Hex文件的详细步骤
1.在"Workspace (窗格)"上左键单击工程文件 2."Project (菜单项目)"->"Options... Alt+F7 (菜单项目)" 3."Linker" -> "Output"->"Allow C-SPY-specific extra output file (复选框)"上单击 4."Linker" ->"Extra Output (选项卡项目)"
IAR for AVR 5.11 full 破解
IAR for AVR 5.11 full 破解 1.运行IARID.EXE,获取ID号 2.右键编辑"Do it.bat",将其中ID改为IARID.EXE中获取到的ID,注意0x后面5个字符中如果有小写字母需要改为大写,如0x02dt5需要改为0x02DT5; 3.保存该文件,运行后生成一个<em>avr</em>sn.txt文件,在该文件中查找"AVR",对应的序列号及License即为安装时所需注册内容。
如何使用IAR软件来调试和下载编译文件到MSP430 LaunchPad!
这是我在一个网站论坛上面找到的,很好很强大啊! 谢谢楼主分享! 内容比较多,我就不想再编辑了!大家参考下面的地址配置一下就行了!   http://bbs.eeworld.com.cn/thread-303599-1-1.html###zoom
IAR For Arm 的精确定时及延时等
网上查了一些,一种是使用循环,但是时间是估算的。还有的是使用intrinsics.h文件中的__delay_cycles(x)函数。 但是在我的IAR 7.8版本中,没有看到此函数。 我使用的是德州仪器TMS570LS系列的芯片,它是有定时功能的,我们可以使用RTI模块的代码,获取定时器开启后的时钟数, 依照我们的配置文件Hal Code Generator中的RTI配置,1000个周期是0.1m...
avr 单片机的开发环境
<em>avr</em> 单片机的开发环境是: <em>avr</em>ICC7.22, 下载器使用双龙USBISP下载器, 下载<em>程序</em>的软件是SLISP, 下载先JTAGMKII驱动安装前需要先安装<em>avr</em>studio 4.19.
在IAR中编译C程序
1)新建一个工程  打开
STM32 无法使用IAR下载程序问题
一开始建立了工程,然后<em>程序</em>下载都很正常。
IAR For AVR 精确延时
C语言中,想使用精确的延时<em>程序</em>并不容易。IAR 中有这样的一个函数 __delay_cycles(),该函数在头文件intrinsics.h中定义,函数的作用就是延时N个指令周期。根据这个函数就可以实现精确的延时函数了(但不能做到100%精确度)。 实现的方法: 建立一个de
嵌入式C语言编程与AVR技巧(一)——C语言环境访问MCU寄存器
单片机的特殊功能寄存器SFR,是SRAM地址已经确定的SRAM单元,在C语言环境下对其访问归纳起来有两种方法。 1、采用标准C的强制类型转换和<em>指针</em>来实现 采用标准C的强制转换和<em>指针</em>的概念来实现访问MCU的寄存器,例如: #define DDRB (*(volatile unsigned char *)0x25) 分析如下:     A:(unsigned char *)0x25中的0
AVR 的精确延时程序
AVR 的精确延时<em>程序</em>  (2009-04-07 15:17:15) C语言中,想使用精确的延时<em>程序</em>并不容易。IAR 中有这样的一个函数 __delay_cycles(),该函数在头文件intrinsics.h中定义,函数的作用就是延时N个指令周期。根据这个函数就可以实现精确的延时函数了(但不能做到100%精确度)。 实现的方法: 建立一个delay.h的头文件: #ifndef __I
关于IAR无法生成BIN文件的问题
之前为了在STM32的IAR工程里面生成BIN文件以便下载,参考了网上许多文章 ,认为只要在Option->Output converter->Output format里面设置bin文件生成就可以,但发现自己的工程使用了这方法一直不管用。后来才发现还需要在Option->Linker->Output里面设置成生成 .out 的文件格式才可以。如下图。该格式是IAR默认生成的,但后来被我改了,所以
msp430程序跑飞之解决方法
msp430<em>程序</em>跑飞之解决方法 1.中断或主函数中有死循环,现象是<em>程序</em>停在某处。 2.堆栈溢出。现象是<em>程序</em>跑飞。 解决办法: A.看中断有没有用 _EINT(),引起中断嵌套.   B.Project--Options--General Options---Stack/Heap 将Stack size设置大一些。 3.中断耗时太长,刚出中断又进去了.这时的现象是<em>程序</em>一直在中断中执行,回
使用IAR编译STM8S 如何生产烧录文件
IAR<em>编译</em>后可以生成的烧录文件格式有4中,如下 第一种是Motorola,其生成文件和STVD生成烧录文件.s19格式一样的,即可以通用 第二种是16进制,keil等等常都用到的; 第三种是二进制的,个人比较少用 第四种是??我也没有用过。 IAR中格式选择:按图指示: I 至此,重新<em>编译</em>,即可生成想要的
IAR旧版本的工程在新版本上运行时,需要修改的地方
我用的是8.10版本。但是工程时更早以前的 打开时提示
AVR mega16 串口 bootloader实现 本人xuguangsheng
对于搞<em>avr</em>的同志们来说,这是个好东西,这个是我自己写的,不算完美,起码下载成功了
个人对堆栈的理解和IAR编译器的内存分配
heap(堆):开发者自己申请而分配到的动态内存;不要了需要自己释放内存; stack(栈):通过定义 变量、数组等,系统分配的内存;不用了不需要自己释放内存; 在c语言<em>编译</em>环境下:char  *p=(char *)malloc(分配的内存大小);//申请内存 free(p); //释放内存 在c++下是用new来申请; 定义一个静态数组,实际上就是在栈中分配一块动态内存,数组名即为内存
在IAR调试stm32中断偏移的奇怪现象
今天在做STM32F207 bootloader时发生了一个诡异的事情,在IAR中将我的APP函数中断偏移设置为 即偏移了64KB,前64KB用于放置bootloader<em>程序</em>.<em>编译</em>连接最后生成map,查看也没出错 然后在IAR中下载调试(在此之前还没有下载bootloader): 竟然可以找到复位函数的入口,全速运行,<em>程序</em>正常执行. 按照ST官网的手册一般情况下
s3c2410_watchdog驱动程序
<em>程序</em>在运行的时候不断的喂狗,一旦系统跑<em>飞了</em>,用来重启系统.
程序飞了,高手求救
做了一个命令测试<em>程序</em>,当输入你个非16进制的数时,<em>程序</em>就<em>飞了</em>,高手指教rnrn<em>程序</em>如下:rnrnint main()rnrn int i;rn unsigned int ch;rn while(1)rn rnrn printf("\ninput the command code(FF is eixt):");rn scanf("%x",&ch);rn printf("%x",ch);rn switch(ch)rn rn case 0x00:rn Test_00H();break;rn case 0x10:rn Test_10H();break;rn case 0x20:rn Test_20H();break;rn case 0x22:rn Test_22H();break;rn case 0x30:rn Test_30H();break;rn case 0x32:rn Test_32H();break;rn case 0x3C:rn Test_3CH();break;rn case 0x40:rn Test_40H();break;rn case 0x70:rn Test_70H();break;rn case 0xFF:rn exit(0);break;rn default:rn printf("input Error!\n");rn rnrn rn getch();rn return 0;rnrn输入以16进制数正常,但输入非16进制的其他意外字符和符号时,<em>程序</em>就<em>飞了</em>rn rn
IAR 使用说明
IAR for AVR 学习笔记(1)--数据类型     数据类型(<em>编译</em>器支持 ISO/ANSI C 基本数据类型和一些附加数据类型) 1.1. 整型数据 bool 数据类型在C++语言里是默认支持的。如果你在C代码的头文件里包含stdbool.h, bool数据类型也可以使用在C语言里。也可以使用布尔值 false和 true。   1.2.浮点数据类型:   1
嵌入式学习笔记(19)——AVR单片机之C51向ICCAVR的移植
1.头文件,把reg51.h,reg52.h替换成相应的AVR头文件,如iom16v.h等。 2.对C51中的bit,sbit的数据类型进行处理,因为ICCAVR不支持bit和sbit数据类型,可以用位运算和BIT来处理。分别定义置1和清零的宏,使用BIT需加“#includemacros.h>”。 3.IO的操作。 4.中断系统,定时器等与单片机结构密切相关的代码,需要重新修改。 5.和
在IAR中使用C++写单片机程序
一直就很想学学C++,想等等以后调智能车的时候写写上位机玩玩。只是很可惜了一直没时间学,C++没学多少倒是在写单片机的时候C语言精通了… 今天没事看了看C++ primer 顺便搞搞C++的单片机编程,只知道可以用C/C++编但是一直还没用过。 该<em>程序</em>使用IAR 8.2   STM32RBT6单片机 新建工程 新建工程也没什么差别。 我直接选的ARM 的C++ 不是Empty projec...
IAR MSP430如何生成烧写文件
IAR生成430烧写方法有2种, 第一种是;将工程的debug模式切换成release模式,看图片操作。    那个.d43文件就是仿真调试模式的文件。 这里的test.txt文件就是烧写文件了,不要怀疑它,我们看看它的内容。 第二种方法:按着下图操作。(这是网友提供的)   接下来就是烧写软件了,有2个,你可以二选一,他们都可以到网上下载下来。  
STM32 独立看门狗实验
STM32103系类单片机 独立看门狗实验,有了看门狗,再也不用担心<em>程序</em>跑<em>飞了</em>。
stm32 无初值指针变量导致程序跑飞
//定时器3中断服务<em>程序</em>   void TIM3_IRQHandler(void) {           if(TIM3->SR&0X0001)//溢出中断 { char str[5]; //LED1=!LED1;     //TIM3->CR1 &= 0xfe; //关闭定时器3                rx_all += rx_count;        
IAR for MSP430时,如何查看编写代码占用字节数、内存占用情况、堆栈溢出
在tool选项中有个options 里面有message选项 选择ALL  <em>编译</em>完成后,IAR会给出有多少代码和ram被占用。如果要看具体语句占用的容量,需要看汇编后的汇编代码,找C预言对应产生的汇编代码那段,会给出每条语句地址,这样就能知道具体占用多大。 以msp430f135为例,它是512bytes的ram,起始地址为200h,终止地址为3ffh,所以
五.ARM裸机学习之汇编写启动代码之关看门狗,开iCache,汇编程序和C程序互相调用
a&b :相同为1则为1,否则为0 a|b :有1则为1,否则为0 a^b : 有1则为1,否则为0 常用位运算:与、或、非、移位 位与(&) 位或(|) 位非(取反 ~) 移位(左移>) 使用位运算实现功能 1即bit3为1 1即bit5为1 (1 扩展一下:如何只熄灭中间1颗而点亮旁边2颗 ldr r0, =((0 汇编写代码启动代码之关看门狗 一.什么
pthread_create 传递参数时指针跑飞问题
http://blog.sina.com.cn/s/blog_7e25c3ad0101nxn3.html 今天在使用pthread_create的时候遇到了一个问题,传递的arg<em>指针</em>跑<em>飞了</em>,使用如下: PthreadArgs arg; if (pthread_create(&pid, NULL, ThreadFunc, reinterpret_cast (&arg)) !=
高版本IAR打开低版本编译程序出现的问题
山外KEA<em>程序</em>一打开就出现这个: The project file 'vcan_Kinetis.ewp' is in an old format. Would you like to convert it for use with this version? (The converted project will not work with older versions of EW, b
移植IAR到 AVR GCC
Porting From IAR to AVR GCC Introduction C language was designed to be a portable language. There two main types of porting activit
AVR单片机(ATmega16L)DS18B20温度传感器驱动程序
自学真难,随便碰到个问题,都要百度半天、一天、两天and so on......   从开始写DS18B20的<em>程序</em>到现在已经四天了,还没有全部成功。以前写<em>程序</em>,参考的芯片资料都是中文的,感觉英语的看着头大,也看不懂,所以就没想着要去参考参考原厂的datasheet,看了两天的中文资料,这个看了写的<em>程序</em>不正确,马上再下一个,结果桌面上下的DS18B20的资料放了一大片,<em>程序</em>还是不正确。   自感
IAR For AVR 定时器中断初值计算方法
使用芯片 AT Mega16     外部晶振 4.00MHz 定时器1   (16位定时器)寄存器 TCCR1B = 0x04 设定 256预分频 要利用定时器定时1秒 1,4000000 / 256 = 15625    说明定时器每当 1/15625 秒 就会触发一次
DSP程序死机(跑飞)的一些情况-软件原因
 前面对DSP<em>程序</em>死机的硬件原因进行列举,并给出相应的解决办法,今天将DSP<em>程序</em>死机(跑飞)的软件原因列举一下。 软件死机主要原因是1、堆栈溢出;2、数组溢出;3、访问指向空地址的<em>指针</em>;4、未声明的函数调用跑飞。 1、堆栈溢出 以TI CCS3.3为例,<em>程序</em>运行的堆与栈的空间大小都是由软件设计师自己定义分配大小的。一般出现问题就是为DSP软件运行设置的堆或栈的空间太小,而导致<em>程序</em>不能正
IAR For AVR 两线串行接口 TWI 应用
ATMEL的TWI   和 PHILIPS的IIC   基本上应该是算一个东西,但是他们在名义上是不同的,这样谁都不用支付给对方使用费。他们的协议是一样的,所有我们作为使用者基本可以简单的看成 TWI就是IIC 。       废话说完,开始正题。这次是关于在ATMega16
AVR单片机三种存储器使用问题
AVR 系列单片机内部有三种类型的被独立编址的存储器,它们分别为:Flash <em>程序</em>存储器、内部SRAM 数据存储器和EEPROM 数据存储器1。 Flash 存储器为1K~128K 字节,支持并行编程和串行下载,下载寿命通常可达10,000 次。由于AVR 指令都为16 位或32 位,<em>程序</em>计数器对它按字进行寻址,因此FLASH 存储器按字组织的,但在<em>程序</em>中访问 FLASH 存储区时专用指令LPM
IAR编译release版本的STM32程序文件不是0x8000000和0x20000000区域的
问题的解决方式:     在菜单栏Projects --&amp;gt; Option选项中Category列表下Linker条目中     Config选项中设置linker configution file把原来的generic.icf文件替换为自己使用的芯片的配置文件     我使用的板子芯片是STM32F407ZGT6就使用config\linker\ST\stm32f407xG.icf文件   ...
Linux下的avr系列的编译烧录调试方法 — 大工CSDN – EE01工作室【附件】
Linux下的MCU开发之AVR系列1 -<em>avr</em>系列的<em>编译</em>烧录调试方法 Galaxy2416 联系方式:sunxiao.gin@gmail.com 附件内容: <em>程序</em>源码,Makefile模板,相关文档。 http://download.csdn.net/detail/galaxy_blue/4277134附件网址~ 系列说明:LINUX下<em>程序</em>开发具有一定的成熟性,包括大部分的M
IAR 程序没跑就飞了,晕呀
我用IAR下载<em>程序</em>到MSP430,可以正常下载,但是下载完之后,运行按钮我都没点过,就已经处于运行状态了,只有暂停按钮和软件重启按钮是亮着的。单片机也没有正常工作,点了暂停按钮之后,光标也找不到,只有跑飞的现象。这是什么原因呀?
IAR头文件和文件路径的问题
感谢原作者:我夏了夏天 原帖地址:http://blog.csdn.net/u012204121/article/details/53940807 IAR的工程路径和头文件路径的配置问题。 之前有多次受到这个问题的困扰,为了一劳永逸的解决问题,将可能出现的问题进行了总结。 解决方法:  首先!!注意最重要的,要先把<em>程序</em>复制一份然后再来进行修改!!! 1.如果是找
GCC-AVR 编写中断服务函数的注意事项
//注意:本文使用的GCC-AVR版本为WinAVR20100110
无限循环并不是防止程序“跑飞”的,而是防止main()返回
例子: //实例13:用P0口显示逻辑"与"运算结果 #include   //包含单片机寄存器的头文件 void main(void)  {   P0=(4>0)&&(9>0xab);//将逻辑运算结果送P0口   while(1)     ;    //设置无限循环,防止<em>程序</em>“跑飞” } 请问大侠们最后的无限循环是如何防止<em>程序</em>跑飞的?  ---------------
IAR 的精确延时程序
C语言中,想使用精确的延时<em>程序</em>并不容易。IAR 中有这样的一个函数 __delay_cycles(),该函数在头文件intrinsics.h中定义,函数的作用就是延时N个指令周期。根据这个函数就可以实现精确的延时函数了(但不能做到100%精确度)。 实现的方法: 建立一个delay.h的头文件: #ifndef __IAR_DELAY_H #define __IAR_DELAY_H #i
IAR编译后无法跳转的其中一种解决方法
如果<em>iar</em><em>编译</em>后点击函数无法跳转,点击菜单栏里的Tool,进去点Project中的我标注的黄色框,点对号后重新<em>编译</em>就可以跳转了
在IAR6.3上使用Jlink无法仿真控制LED,但是下载程序正常,SWO一直处于打开模式解决办法
调试LPC1768一直苦于找不到jlink无法仿真控制GPIO,想着<em>程序</em>应该没有写错,能在线仿真,但是就是不执行点亮LED的操作,对比发现SWO模式一直处于打开的状态,一直苦于找不到如何关闭SWO模式,挣扎了一个星期,终于发现只要取消勾选上面图的勾勾就行了。。。。。。 由于这个代码是别人写的,顺便查了一下swo的输出模式和控制,参考一下连接 http://www.keil.com/su
IAR map文件分析
map(内存映射)文件中包含很多<em>程序</em>相关重要信息,有利于<em>程序</em>调试。     下面以IAR STM8s为例:     首先生成map文件:         勾选generrate linker map file选项,重新<em>编译</em>文件,在Worlspace项目下Output文件可查看map文件             map文件分析:     1、文件头中显示链接器版本,输出文件名,
IAR 编写程序的代码比单片机的flash大了会出现故障Error[e16] is too long for segment definition
Error[e16]: Segment NEAR_ID (size: 0x15 align: 0) is too long for segment definition. At least 0xb more bytes needed. The problem occurred while processing the  segment placement command &quot;-Z(CODE)TINY...
开发环境CodeVisionAVR应用指南
CodeVisionAVR软件的使用 (1)创建新项目 使用 File|New 菜单命令  或点击工具栏中的Create new file 按钮可创建新项目。 一个对话框出现,在这个对话框中,必须选择 File Type|Project 并点击 OK 按钮。 一个对话框打开,提示确认是否使用 CodeWizardAVR 来创建新项目。                           
IAR中内嵌汇编指令
IAR中内嵌汇编指令方式如下: volatile char UART1_SR; #pragma required=UART1_SR char sFlag = 0; int main(void) {     while (!sFlag)     {         asm(" ldr r2,[pc,#0] \n"        /* r2 = address of sFlag
栈的理解以及如何计算程序所需栈的大小并在IAR中设置栈
栈的理解以及如何计算<em>程序</em>所需栈的大小并在IAR中设置栈
IAR中如何定向把数组和函数放在指定的地址单元
应用中我们经常会用到一些应用场景,如使用Const 关键字定义一个数组到Flash地址单元,但是具体该数组放在Flash的那个位置,通常是由<em>编译</em>器自己分配的(和LCF连接配置文件设置有关),以及定义函数到RAM区域,增快<em>程序</em>代码的执行速度。所以在这些场合我们会去思考如何指定一段数组或者一个函数到特定的Flash,EEPROM或者RAM区间中,下面简单给出几个实例。 1. 指定数组
IAR编译的工程无法正常仿真的问题
解决IAR<em>编译</em>的工程无法仿真的问题
stm8s编译器查看代码量大小的软件
mapinfo v0.3 for cosmic map 功能介绍: 1. 对cosmic<em>编译</em>器生成的map文件进行分析,显示ram flash eeprom stack的占用量 ps:ram仅指ram变量(全局+静态+局部变量),不包括栈(stack)     eeprom仅能统计由@eeprom定义出的变量或常量 更新说明: 1. 增加堆栈占用(stack)显示 2. 增加对自定义(未定义)段的...
启动代码中关于变量的初始化
对于一个标准C<em>程序</em>所用到的全局和静态变量都是定位在固定的内存空间,在<em>程序</em>启动时必须赋予确定的数值,对于<em>程序</em>中没有赋初值的变量,<em>编译</em>器默认赋值为0。对于__no_init限定的变量则不会被初始化。 对于一个标准的C<em>程序</em>中用到的变量类别如下 Categories of declared data 所示, L(1) 初始化过程 需要初始化为0的section由ILINK中放置在
iar无法编译
这几天<em>iar</em>突然无法<em>编译</em>了,点了<em>编译</em>按钮之后,既不提示正确,也不出现错误数目,就像死机了一样。只好重装,但每次重装之后都这样。后来网上查查,原来是这个东西安装前要用管理员打开。要不然生成的hostID不一样
文章热词 微信开发小程序公众号微信支付关系 颜色模型OpenCV编译 机器学习 机器学习课程 机器学习教程
相关热词 c++使用gpu跑程序 c#程序越跑越慢 c++程序编译 ubuntu g++ 编译c++程序 python程序 程序python培训
我们是很有底线的