⑴ 如何让keil4同时能使用51跟ARM编译
不管你之前装的是51的还是ARM这都没关系。其实很简单的,下面介绍步骤:
先将安装目录下的名字为C51文件夹或者ARM文件夹,放到你安装keil的目录中,路径是注意是C:keil。最好还是把目录装在C盘上。
打开TOOLS.INI的这个文件,将文件中加点东西。
打开后如果你是想在ARM下加入51功能,那么你把这一段复制下来
ORGANIZATION="微软中国" NAME="微软用户", "dsf" EMAIL="sad"
BOOK0=UV4RELEASE_NOTES.HTM("uVision Release Notes",GEN) SOCKETPORT=1 [C51]
PATH="C:KeilC51" VERSION=V9.00
BOOK0=HLPRelease_Notes.htm("Release Notes",GEN)
BOOK1=HLPC51TOOLS.chm("Complete User's Guide Selection",C) TDRV0=BINMON51.DLL ("Keil Monitor-51 Driver")
TDRV1=BINISD51.DLL ("Keil ISD51 In-System Debugger")
TDRV2=BINMON390.DLL ("MON390: Dallas Contiguous Mode") TDRV3=BINLPC2EMP.DLL ("LPC900 EPM Emulator/Programmer") TDRV4=BINUL2UPSD.DLL ("ST-uPSD ULINK Driver")
TDRV5=BINUL2XC800.DLL ("Infineon XC800 ULINK Driver") TDRV6=BINMONADI.DLL ("ADI Monitor Driver")
TDRV7=BINDAS2XC800.DLL ("Infineon DAS Client for XC800") TDRV8=BINUL2LPC9.DLL ("NXP LPC95x ULINK Driver") RTOS0=Dummy.DLL("Dummy")
RTOS1=RTXTINY.DLL ("RTX-51 Tiny") RTOS2=RTX51.DLL ("RTX-51 Full")
LIC0=GEGKP-MSCX1-YLXC6-DKBC1-ZJPCT-SL63G TDRV9=BINSTCMON51.DLL ("STC Monitor-51 Driver")
如果是想在51下装ARM,那么你把这一段复制下来粘贴到你的TOOLS文件下
ORGANIZATION="微软中国" NAME="微软用户", "dsf" EMAIL="sad" ARMSEL=1
BOOK0=UV4RELEASE_NOTES.HTM("uVision Release Notes",GEN) CDB0=UV4STC.CDB ("STC MCU Database") [ARM]
PATH="C:KeilARM" VERSION=4.70a
PATH1="C:Program FilesGNU Tools ARM Embedded4.7 2012q4"
TOOLPREFIX=arm-none-eabi-
CPUDLL0=SARM.DLL(TDRV0,TDRV5,TDRV6,TDRV10) # Drivers for ARM7/9 devices
CPUDLL1=SARMCM3.DLL(TDRV1,TDRV2,TDRV3,TDRV4,TDRV5,TDRV7,TDRV8,TDRV9,TDRV11,TDRV12,TDRV13,TDRV14,TDRV15) # Drivers for Cortex-M devices CPUDLL2=SARMCR4.DLL(TDRV7) # Drivers for Cortex-R4 devices
BOOK0=HLPRELEASE_NOTES.HTM("Release Notes",GEN)
BOOK1=HLPARMTOOLS.chm("Complete User's Guide Selection",C) BOOK2=CMSISindex.html("CMSIS Documentation",GEN)
BOOK3=SignumDocsSigUV3Arm.htm("Signum Systems JTAGjet Driver Documentation",GEN)
TDRV0=BINUL2ARM.DLL("ULINK2/ME ARM Debugger") TDRV1=BINUL2CM3.DLL("ULINK2/ME Cortex Debugger") TDRV2=BINAGDIRDI.DLL("RDI Interface Driver")
TDRV3=BINABLSTCM.dll("Altera Blaster Cortex Debugger") TDRV4=BINlmidk-agdi.dll("Stellaris ICDI")
TDRV5=SignumSigUV3Arm.dll("Signum Systems JTAGjet") TDRV6=SeggerJLTAgdi.dll("J-LINK / J-TRACE ARM") TDRV7=SeggerJL2CM3.dll("J-LINK / J-TRACE Cortex")
TDRV8=STLinkST-LINKIII-KEIL.dll ("ST-Link (Deprecated Version)") TDRV9=BINULP2CM3.DLL("ULINK Pro Cortex Debugger") TDRV10=BINULP2ARM.DLL("ULINK Pro ARM Debugger") TDRV11=NULinkNu_Link.dll("NULink Debugger")
TDRV12=SiLabsSLAB_CM_Keil.dll("SiLabs UDA Debugger") TDRV13=STLinkST-LINKIII-KEIL_SWO.dll ("ST-Link Debugger") TDRV14=BINCMSIS_AGDI.dll("CMSIS-DAP Debugger") TDRV15=BINDbgFM.DLL("Fast Models Debugger")
DELDRVPKG0=ULINKUninstallULINK.exe("ULINK Pro Driver V1.0") LIC0=GE7X7-EGEQ5-9WB2E-5T3KT-NA0N1-V0DP8 [ARMADS]
PATH="C:KeilARM" PATH1=".ARMCCin"
CPUDLL0=SARM.DLL(TDRV0,TDRV5,TDRV6,TDRV10) # Drivers for ARM7/9 devices
CPUDLL1=SARMCM3.DLL(TDRV1,TDRV2,TDRV3,TDRV4,TDRV5,TDRV7,TDRV8,TDRV9,TDRV11,TDRV12,TDRV13,TDRV14,TDRV15) # Drivers for Cortex-M devices CPUDLL2=SARMCR4.DLL(TDRV7) # Drivers for Cortex-R4 devices
BOOK0=HLPRELEASE_NOTES.HTM("Release Notes",GEN)
BOOK1=HLPARMTOOLS.chm("Complete User's Guide Selection",C) BOOK2=CMSISindex.html("CMSIS Documentation",GEN)
BOOK3=SignumDocsSigUV3Arm.htm("Signum Systems JTAGjet Driver Documentation",GEN)
⑵ 在C语言中printf的使用问题.
你是想把一个字符串分成多行写是吧?
有两种实现方法。
第一种,很简单,每行都用双引号包起来,编译器自然会把它们合起来。
第二种,在断行的地方加个\
⑶ developement是什么软件
developement是集成开发环境软件。
Development Studio是英飞凌公司于2019年底推出的免费集成开发环境,支持英飞凌TriCore™内核AURIX™系列MCU。
它是一个完整的开发环境,包含了Eclipse IDE、C编译器、Multi-core调试器、英飞凌底层驱动库(low-level driver,iLLD),同时对于编辑、编译及调试应用代码没有时间及代码大小的限制。
ADS软件组成:
AURIX™Development Studio 1.1.8
DAS 7.1.9:英飞凌AURIX™驱动
iLLD 1.0.1.11.0:英飞凌底层驱动库
Oracle JRE11: java Runtime Environment
TASKING Debugger v1.1r2–仅能使用于非商业目的
TASKING Compiler v1.1r1–仅能使用于非商业目的
⑷ sdcc版是啥意思
SDCC(Small Device C Compiler)是一个优化的 ANSI - C交叉编译器,目标CPU为基于Intel 8051, Maxim 80DS390, Zilog Z80 和Motorola 68HC08 的单片机。
SDCC同时带有一个源代码级调试工具SDCDB,使用的是Daniel's s51仿真器当前版本。SDCC是由Sandeep Dutta 所写的,并依据GPL license 发行。
sdcc的特点:
1、SDCC的sdas和sdld 是基于ASXXXX的交叉编译工具和链接工具,他们都是免费开源的软件,依据GNU General Public License (GPL) 发布。
2、有针对特定MCU的编程语言扩展,可以高效的使用基本的硬件资源。
3、有大量的标准优化,如全局字表达式削减,循环优化(无任何操作的循环优化,归纳变量循环优化,逆循环优化), 常量合并的传播,复制传播,死代码删除, 'switch'语句的转移表优化。
4、针对特定MCU的优化,包括全局寄存器分配算法。
5、特定MCU后端适应能力,能够很好的适配其他的8位的MCU。
(4)das编译器扩展阅读:
交叉编译出现和流行是和嵌入式系统的广泛发展同步的。常用的计算机软件,都需要通过编译的方式,把使用高级计算机语言编写的代码(比如C代码)编译(compile)成计算机可以识别和执行的二进制代码。
比如,在Windows平台上,可使用Visual C++开发环境,编写程序并编译成可执行程序。这种方式下,我们使用PC平台上的Windows工具开发针对Windows本身的可执行程序,这种编译过程称为native compilation,中文可理解为本机编译。
然而,在进行嵌入式系统的开发时,运行程序的目标平台通常具有有限的存储空间和运算能力,比如常见的 ARM 平台,其一般的静态存储空间大概是16到32MB,而CPU的主频大概在100MHz到500MHz之间。
这种情况下,在ARM平台上进行本机编译就不太可能了,这是因为一般的编译工具链(compilation tool chain)需要很大的存储空间,并需要很强的CPU运算能力。
为了解决这个问题,交叉编译工具就应运而生了。通过交叉编译工具,我们就可以在CPU能力很强、存储空间足够的主机平台上(比如PC上)编译出针对其他平台的可执行程序。
要进行交叉编译,要在主机平台上安装对应的交叉编译工具链(cross compilation tool chain),然后用这个交叉编译工具链编译我们的源代码,最终生成可在目标平台上运行的代码。
⑸ 汇编语言中的DEC是什么意思
DEC( DECrement ) 减1指令
格式:DEC OPR //Byte/Word
执行操作:(OPR)<-(OPR-1) //除CF标志位,其余标志位都受影响。
指令使操作数的内容减1,然后再送回该操作数。该操作数可以是寄存器操作数、存储器操作数。
例如:一、dec自减函数
1.dec(i,n);//i,n:integer;n为自减量
相当于i:=i-n;
2.dec(i);//i:integer;
相当于i:=i-1;
例如:二、Dec是递减函数
i:=100;
dec(i);
i就变成99了,
如果是dec(i,30)的话,
那么i=100-30=70
数据传送指令
这部分指令包括通用数据传送指令MOV、条件传送指令CMOVcc、堆栈操作指令
PUSH/PUSHA/PUSHAD/POP/POPA/POPAD、交换指令XCHG/XLAT/BSWAP、地址或段描述符选择子传送指令LEA/LDS/LES/LFS/LGS/LSS等。
注意,CMOVcc不是一条具体的指令,而是一个指令簇,包括大量的指令,用于根据EFLAGS寄存器的某些位状态来决定是否执行指定的传送操作。
整数和逻辑运算指令
这部分指令用于执行算术和逻辑运算,包括加法指令ADD/ADC、减法指令SUB/SBB、加一指令INC、减一指令DEC、比较操作指令CMP、乘法指令MUL/IMUL、
除法指令DIV/IDIV、符号扩展指令CBW/CWDE/CDQE、十进制调整指令DAA/DAS/AAA/AAS、逻辑运算指令NOT/AND/OR/XOR/TEST等。
移位指令
这部分指令用于将寄存器或内存操作数移动指定的次数。包括逻辑左移指令SHL、逻辑右移指令SHR、算术左移指令SAL、算术右移指令SAR、循环左移指令ROL、循环右移指令ROR等。
位操作指令
这部分指令包括位测试指令BT、位测试并置位指令BTS、位测试并复位指令BTR、位测试并取反指令BTC、位向前扫描指令BSF、位向后扫描指令BSR等。
条件设置指令
这不是一条具体的指令,而是一个指令簇,包括大约30条指令,用于根据EFLAGS寄存器的某些位状态来设置一个8位的寄存器或者内存操作数。比如SETE/SETNE/SETGE等等。
控制转移指令
这部分包括无条件转移指令JMP、条件转移指令Jcc/JCXZ、循环指令LOOP/LOOPE/LOOPNE、过程调用指令CALL、子过程返回指令RET、中断指令INTn、INT3、INTO、IRET等。
注意,Jcc是一个指令簇,包含了很多指令,用于根据EFLAGS寄存器的某些位状态来决定是否转移;INT n是软中断指令,n可以是0到255之间的数,用于指示中断向量号。
串操作指令
这部分指令用于对数据串进行操作,包括串传送指令MOVS、串比较指令CMPS、串扫描指令SCANS、串加载指令LODS、串保存指令STOS,这些指令可以有选择地使用REP/REPE/REPZ/REPNE和REPNZ的前缀以连续操作。
输入输出指令
这部分指令用于同外围设备交换数据,包括端口输入指令IN/INS、端口输出指令OUT/OUTS。
高级语言辅助指令
这部分指令为高级语言的编译器提供方便,包括创建栈帧的指令ENTER和释放栈帧的指令LEAVE。
控制和特权指令
这部分包括无操作指令NOP、停机指令HLT、等待指令WAIT/MWAIT、换码指令ESC、总线封锁指令LOCK、内存范围检查指令BOUND、全局描述符表操作指令LGDT/SGDT、中断描述符表操作指令LIDT/SIDT、局部描述符表操作指令LLDT/SLDT、
描述符段界限值加载指令LSR、描述符访问权读取指令LAR、任务寄存器操作指令LTR/STR、请求特权级调整指令ARPL、任务切换标志清零指令CLTS、控制寄存器和调试寄存器数据传送指令MOV、
高速缓存控制指令INVD/WBINVD/INVLPG、型号相关寄存器读取和写入指令RDMSR/WRMSR、处理器信息获取指令CPUID、时间戳读取指令RDTSC等。
浮点和多媒体指令
这部分指令用于加速浮点数据的运算,以及用于加速多媒体数据处理的单指令多数据(SIMD及其扩展SSEx)指令。这部分指令数据非常庞大,无法一一列举,请自行参考INTEL手册。
虚拟机扩展指令
这部分指令包括INVEPT/INVVPID/VMCALL/VMCLEAR/VMLAUNCH/VMRESUME/VMPTRLD/VMPTRST/VMREAD/VMWRITE/VMXOFF/VMON等。
网络——汇编语言(面向机器的程序设计语言)
⑹ VC++ 出错在线等~~```
补充一下:ayanee所说的 using namespace std;一句没有必要,这一点是两个风格(C风格,C++风格)的问题。
namespace 是一个命名空间,用namespace的目的是为了防止重名。比如说,你输入以下语句:
#include <math.h>并且是为了使用sin的话;
那么,你的程序中如果有abs()函数定义,编译器就会发生错误。
如果你用
#include <cmath>
using std::sin;
在你的程序中,只有math.h中的sin()是可用、可见的,而abs()等等函数都会被隐藏,换言之,这些函数可以被重新定义。
所以,原程序头推荐写作:
#include<cstring>
#include<iostream>
using namespace std;
⑺ C++语言之所以难学,就是因为字符串太多了!
你学C++要循序渐进啊。
别把基本类型,指针,const类型,STL甚至是win32平台特性混为一谈
LPCSTR LPCTSTR这些都是方便win32平台开发提供的宏,管C++啥事。
我来告诉你C++的主要部分吧。从低到高:
1.asm 内联汇编
2.C语言部分
3.面向对象的编程:类和继承
4.C++语言高级特性(引用,操作符重载,函数对象,异常等等)
5.模板编程,元编程
6.C++标准库:STL BOOST等
C++是最强大完美的语言,每一细节都需要我们认真领会,一口气从C++吞到win32平台开发。说明你的学习方法也太糟糕了。
还有char*是不可以转换成char[]的。如果你要reinterpret_cast,编译器不再提醒编译时错误。
并且你当你熟练掌握以上后,仍然写不出任何有价值的软件.因为你要操纵你的电脑,你需要熟悉平台接口,而最常见的的是win32平台,而win32开发,必须掌握的至少有四大类API
.用户界面(包含窗口,消息,钩子,各种控件,资源,鼠标键盘的原始输入) 57个主题
.图形和多媒体(包含GDI和GDI+以及周边的知识) 27个主题
.系统服务(包含文件系统,进程间通信,注册表,等等) 29个主题
.网络(包含winsock,RPC等等)24个主题
痛苦的是,以上%85的主题都是必须要掌握的.如果用MFC来走捷径,反而会走更多弯路.
我想C++也好,win32开发也好,不是难的问题,而是涉及的只是太多的问题
⑻ C++ 为什么不能先引用后定义
你不先定义,它不知道 自己包含着 什么函数。
就跟定义 变量一样,你要先 int x; 在 x = 20; 才可用。
直接x=20; 系统不知道 x 从哪儿来的。函数 变量定义 处理方式虽说有些不同,基本的原则一样,必须要告诉速系统 你用了什么样的类型的函数。
别问为什么了,开发C的时候 人家那么做的 没办法。
--------------------------------------------
不过最近出来的,比较智能,无需定义。像 java,c#
⑼ 用户如何提高存储性能有哪些解决方案
何提高网速 电脑运行速度显卡关内存关 杀毒软件突打
:数据存储备份存储管理源于世纪70代终端/主机计算模式由于数据集主机易管理海量存储设备——磁带库必备设备80代由于PC发展尤其90代应用广客户机/服务器模式普及及互联网迅猛发展使存储容量、存储模式存储要求都发根本性变化些新兴存储技术迅速崛起构建更安全信息代提供更选择
编者按何确保所数据能够靠备份及进行灾难恢复存储管理软件核任务外存储管理软件存些基本功能诸改进系统应用I/O性能及存储管理能力提高数据应用系统高用性减少由于各种原断数据存取或者应用系统宕机间实现技术级存储管理(HSM)、ClusterServer(集群服务器)等
首先能提供些识别析存储访问模式VolumeManager工具VolumeManager通复杂磁盘配置能均衡I/O负载影响应用同能够优化应用数据布局数据条形散放物理盘提高性能同具断应用情况识别消除性能瓶颈能力增强系统应用性能另外VolumeManager减少系统断间、增加数据完整性等面俗表现允许磁盘进行线管理更改配置减少系统产极影响停机间同利用冗余技术提高数据用性防止数据丢失破坏
其非重要快速恢复志式文件系统FileSystem能间断数据访问条件文件作线备份并系统重启或崩溃前允许访问数据并恢复文件提高用户管理员产效率FileSystem系统崩溃前能未完数据记录事件志利用恢复程序重现保持数据完整性
VolumeManagerFileSystem都工作操作系统级实现集群与故障恢复、自管理、备份与HSM及基于浏览器远程管理等两者机结合利用双特磁盘数据管理能力能给企业系统提供尽能高性能、用性及管理性
基础便整存储管理核任务——备份技术
数据存储备份技术般包含硬件技术及软件技术等硬件技术主要磁带机技术软件技术主要通用专用备份软件技术等我主要软件技术面加讨论备份软件技术整数据存储备份程具相重要性仅关系否支持磁带各种先进功能且程度决定着备份效率备份软件定操作系统所提供备份功能厂商都提供许专业备份软件专业备份软件能通优化数据传输率即自较高传输率进行数据传输仅能缩短备份间、提高数据存储备份速度且磁带机设备本身处另外专业备份软件支持新磁带机技术HPTapeAlert技术差所主流专业备份软件均提供支持
于存储模式说比较见DAS、NASSAN等DAS(DirectAttachedStorage-直接连接存储)指存储设备通SCSI接口或光纤通道直接连接台计算机服务器理比较散、难通远程连接进行互连直接连接存储比较解决案直接连接存储帮助企业继续保留已传输速率并高网络系统
网络主要信息处理模式需要存储数据量增加数据作取竞争优势战略性资产其重要性增加目前发展趋势NASSAN现响应点NAS网络连接存储即存储设备通标准网络拓扑结构(例太网)连接群计算机重点于帮助工作组部门级机构解决迅速增加存储容量需求种两面改善数据用性第即使相应应用服务器再工作仍读数据第二简易服务器本身崩溃避免引起服务器崩溃首要原即应用软件引起问题另外NAS产品真即插即用产品其设备物理位置非灵
SAN(存储区域网络)通光纤通道连接群计算机该网络提供主机连接并非通标准网络拓扑并且通同物理通道支持广泛使用SCSIIP协议结构允许任何服务器连接任何存储阵列管数据置放哪服务器都直接存取所需数据SAN解决案基本功能剥离存储功能所运行备份操作需考虑网络总体性能影响案使管理及集控制实现简化特别于全部存储设备都集群起候
集群通用于加强应用软件用性与扩展性某些集群架构技术加入单系统印象概念单点单系统式管理台计算机集群服务器支持达百台互相连接服务器结合松散结合单位执行作业保护彼应用软件免于故障由于集群服务器完全整合应用软件服务架构建置高效应用软件执行环境即使整系统现故障终端计算机都使用几乎所应用软件集群服务器软件包括引擎、编译器、负载计算器、代理、指令与图形化系统管理接口等组件集群化运算环境优势卓越数据处理能力原则任何类型重主机架构存储设备包括直接连接磁盘都用作集群数据存储设备求系统用性适合使用拥重主机存取路径容错或高用性存储系统
层管理式解决存储容量断增导致何效扩充容量问题情况更用于布式网络环境级其实意味着用同介质实现存储RAID系统、光存储设备、磁带等每种存储设备都其同物理特性同价格例要备份候备份文件般存储速度相比较慢、容量相比较、价格相比较低存储设备磁带做经济实用何实现级呢原理讲级存储线系统迁移数据种文件由HSM系统选择进行迁移拷贝HSM介质文件确拷贝原文件相同名字标志文件创建占用比原文件磁盘空间用户访问标志文件HSM系统能原始文件确介质恢复级存储同实施式HSM根据两级或三级体系态迁移/迁数据类实现级存储
存储应用深入必带整体解决案需求仅包括硬件包括相应软件及服务软硬件兼容融合应用环境势所趋比存储虚拟化提证明趋势利于提高存储利用率、简化管理降低本构建融合存储应用环境总随着网络技术发展、计算机能力断提高数据量断膨胀数据备份与恢复等存储技术面问题显越越重要存储管理技术发展必引起业界高度重视
相关链接:前主流存储介质
磁盘阵列、磁带库
磁盘阵列特点数据存取速度特别快其主要功能提高网络数据用性及存储容量并数据选择性布磁盘提高系统数据吞吐率另外磁盘阵列能够免除单块硬盘故障所带灾难通较容量硬盘连智能控制器增加存储容量磁盘阵列种高效、快速、易用网络存储备份设备
广义磁带库产品包括自加载磁带机磁带库自加载磁带机磁带库实际磁带磁带机机结合组自加载磁带机位于单机磁带驱器自磁带更换装置装盘磁带磁带匣拾取磁带并放入驱器或执行相反程自加载磁带机能够支持例行备份程自每备份工作装载新磁带拥工作组服务器公司或理处使用自加载磁带机自完备份工作
磁带库像自加载磁带机基于磁带备份系统能够提供同基本自备份数据恢复功能同具更先进技术特点存储容量达数百PB(1PB=100万GB)实现连续备份、自搜索磁带驱管理软件控制实现智能恢复、实监控统计整数据存储备份程完全摆脱工干涉磁带库仅数据存储量且备份效率工占用面拥比拟优势网络系统磁带库通SAN(存储局域网络)系统形网络存储系统企业存储提供力保障容易完远程数据访问、数据存储备份或通磁带镜像技术实现磁带库备份疑数据仓库、ERP等型网络应用良存储设备
光盘塔、光盘库光盘网络镜像服务器
光盘仅存储容量巨且本低、制作简单、体积更重要其信息保存100至300光盘塔由几台或十几台CD-ROM驱器并联构通软件控制某台光驱读写操作光盘塔同支持几十几百用户访问信息光盘库叫自换盘机利用机械手机柜选张光盘送驱器进行读写库容量极机柜放几十片甚至百片光盘光盘库特点:安装简单、使用便并支持几乎所见网络操作系统及各种用通信协议
光盘网络镜像服务器仅具型光盘库超存储容量且具与硬盘相同访问速度其单位存储本(摊每张光盘设备本)低于光盘库光盘塔光盘网络镜像服务器已始取代光盘库光盘塔逐渐光盘网络共享设备主流产品