IAR中iar注册机怎么用把os

查看: 751|回复: 0
IAR与STM32上移植uC/OS II时0x1000000内存溢出错误已解决,不知道原因
编译链接都能通过,但是在simulator里面就是一直有错误。
lcf文件的设置采用系统默认的.intvec start 0x;
内存ROM划分:从0x开始
调试了几天都出现这个错误:0x1000000内存溢出的错误。
uC/OS II运行到这里出现的如上错误:
;********************************************************************************************************
;& && && && && && && && && && && && && &&&START MULTITASKING
;& && && && && && && && && && && && &&&void OSStartHighRdy(void)
; Note(s) : 1) This function triggers a PendSV exception(essentially, causes a context switch) to cause
;& && && && & the first task to start.
;& && && & 2) OSStartHighRdy() MUST:
;& && && && & a) Setup PendSV exceptio
;& && && && & b) Set initial PSP to 0, to tell context switc
;& && && && & c) Set OSRunning to TRUE;
;& && && && & d) Trigger PendSV
;& && && && & e) Enable interrupts (tasks will run with interruptsenabled).
;********************************************************************************************************
OSStartHighRdy
& &LDR& & R0,=NVIC_SYSPRI14& && && && && && && && && && && &; Set the PendSV exception priority
& &LDR& & R1, =NVIC_PENDSV_PRI
& &STRB& & R1,[R0]
& &MOVS& & R0,#0& && && && && && && && && && && && && && && &; Set the PSP to 0 for initial context switch call
& &MSR& & PSP, R0
& &LDR& & R0,=OSRunning& && && && && && && && && && && && & ; OSRunning = TRUE
& &MOVS& & R1,#1
& &STRB& & R1,[R0]
& &LDR& & R0,=NVIC_INT_CTRL& && && && && && && && && && && &; Trigger the PendSV exception (causes context switch)
& &LDR& & R1, =NVIC_PENDSVSET
& &STR& & R1, [R0]
& &CPSIE&&I& && && && && && && && && && && && && && && && &&&; Enable interrupts at processor level
OSStartHang
& &B& && &OSStartHang& && && && && && && && && && && && && & ; Should never get here
终于通过修改vector table和ROM地址从 0x开始,程序可以正常跑了。
还不知道原因,后续还要仔细看下芯片手册。
Powered byIAR 调试中常遇到的问题_cc2540吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:45贴子:
IAR 调试中常遇到的问题
问:IAR 调试 CC2540 时程序导入到了芯片的 Flash中了吗?答:确实。CC2540 是 SOC(System On Chip)芯片,它的内核就是 8051,它需要从 ROM中取指令,从 RAM 中取数据来运行。仿真时,CC Debugger 会把程序导入芯片 Flash 中,再执行仿真。
要吃多少质量的亏才知道找 高质量油压机 液压机——宏同机械
问:当 IAR 调试中出现警告“缺少断点,无法运行到main()” ?答:出现这个错误的原因是,IAR for 8051 最多只能设置 3 个断点,如果设置过多,当程序下载后,将出现些调试警告。解决的方法很简单,去掉一些断点,再重新载入程序。
问: 为什么IAR 调试时有很多变量无法查看它的值?答:主要的原因是 IAR 编译器设置了优化功能,函数中的自动变量以及一些静态函数都被优化过了,所以没有生成对应的调试信息,无法查看和设置断点。解决的方法是关闭编译器的优化功能,右键点击工程的 Options -& C/C++ Compiler -& Optimizations 中的 Level 设置为 None。
问:蓝牙协议分层很多且比较复杂,该如何掌握呢?答:蓝牙协议从应用层到物理层一共分了 8 层,看上去比较复杂且 API 函数很多。首先不必要知道每一层的具体实现,掌握与应用紧密关联 GAP/GATT(或者 GAP Role 和 GATTProfiles)层就可以满足大部分设计需要;每一层的软件都是通过 OSAL 来调用的,因此需要了解 OSAL 的基本原理:任务/事件/消息/定时器/动态分配内存;最后把蓝牙通讯过程理解,将有助于开发。
问:OSAL 是一个操作系统吗?答:OSAL(Operating System Abstraction Layer)操作系统抽象层,它不是一个真正的操作系统 (它没有 Context Switch 上下文切换功能) , 但它巧妙地组织各任务, 支持任务优先级,任务之间可以通过事件和消息来通信,为任务提供软定时器和动态内存分配。要避免的陷阱是,应用任务的单个函数运行时间不能太长(如操作大批量数据的 Flash 写) ,否则它无法及时调度高优先级的 LL(Link Layer)任务而导致蓝牙通信中断。
问:蓝牙节点是如何组成微微网的呢?答:蓝牙节点组网中,只能存在一个主节点(Central)和多个从节点(Peripheral) ,从节点是发出信号者,主节点是扫描且发起连接者。
问:主节点和从节点通信的过程是怎样的呢?答:当从节点发出广告信号(包括设备地址和设备名称之类的附加信息) ;主节点收到此广告信号后,向从节点发出扫描请求;当从节点回应扫描时,就完成了设备发现过程。 问:主节点和从节点通信的过程是怎样的呢?答:当从节点发出广告信号(包括设备地址和设备名称之类的附加信息) ;主节点收到此广告信号后,向从节点发出扫描请求;当从节点回应扫描时,就完成了设备发现过程。问:蓝牙通信中两个节点如何交换数据?答:这是蓝牙通信中最让初学者迷惑的地方。大部分通信,尤其是 TCP/IP,交换数据的婚介是数据包,但蓝牙通信中,工程师找不到数据包访问方式,于是就产生疑问。其实蓝牙最底层也是基于无线数据包交换,只是通过层层封装,交付给工程师的 API 接口就变成了Client 访问 Server 的方式。问:Client 和 Server 节点是如何定义呢?答:通俗地说吧,Server(服务器)就是数据中心,Client(客户端)就是访问数据者。特别说明,它与主/从设备是独立的概念:一个主设备既可以充当 Server,又可以充当 Client;从设备亦然。
问:Server 是如何提供数据呢?答:Server 首先将一个服务按“属性/句柄/数值/描述”这种格式予以组织,然后调用 API函数 GATTServApp_RegisterService 将服务数据进行注册。举个实例吧,设提供一个电池电量服务字节,它允许 Client 读取,数据为一个 8 比特无符号数(0~100%) ,它的组织如下: 02 25 00 19 2A, 这 5个数据 (小端格式) 分别是: 0x02=只读属性, 0x0025=句柄; 0x2A19=服务 UUID。
问:不明白 Server 提供服务中的 UUID?答:UUID(Universal Unique Identifier)全球惟一标识符,本来是 SIC 组织分配给特定蓝牙服务的标识,如分配 0x2A25 为设备序列号的 UUID,这样任意蓝牙设备都可以通过它得到另一个设备的序列号。打个类比,它就像书名,如《现代操作系统》 ,所有人一看就知道它是计算机大师 AndrewS. Tanenbaum 写的书
问:什么是 Server 提供服务中的句柄呢?答:句柄(Handle)就是服务数据在数据中心的地址,当所有的服务数据组织起来后,它总得有个先后顺序,某个服务的位置就是它的句柄。还是上面的类比,如果想去图书馆借阅《现代操作系统》 ,需要查明该书在哪一层楼,哪个房间,这就是该书的 Hanle。
处女星号邮轮由上海出发前往大阪,畅享大阪自然美景和饕餮美食
问:什么是 Server 提供服务中的句柄呢?答:句柄(Handle)就是服务数据在数据中心的地址,当所有的服务数据组织起来后,它总得有个先后顺序,某个服务的位置就是它的句柄。还是上面的类比,如果想去图书馆借阅《现代操作系统》 ,需要查明该书在哪一层楼,哪个房间,这就是该书的 Hanle。
问:服务的属性与描述有区别吗?答:有区别,服务的属性是 Server 设置访问权限。(只读) ,或者(读/写) 。问:Client 如何访问 Server 的服务呢?答:大致分三类:读取服务的值,需要知道服务的 UUID 或者 Handle;写服务的值,需要知道服务的 Hanle;写服务描述符,需要知道该 Descriptor 的 Hanle。
问:如何知道一个服务的 Handle?答:根据服务的 UUID 调用 API 函数 GATT_ReadUsingCharUUID协议栈会返回该服务的Handle。特别注意的是,一个服务的 Descriptor 的 Handle 总是该服务的 Handle+1,如电池电量服务的 Handle 是 0x0025,那么它的 Descriptor 的 Handle 是0x0026。问:Server 可以访问 Client 吗?答:蓝牙通信中,Server 不能直接访问(读/写)Client,但是可以通知(Notification)Client,通知的前提是 Client 通过写 Descriptor 使能通知功能。例如,某 Server 发现电池电量已经低于安全阀值,它可以调用 GATT_Notification 通知所有已连接的 Client,但是 Client 接收后如果处理是它自己的事情。
问:如果得知电池容量?答:任何使用电池供电的设备都必须精确监控电池容量,否则设备可以突然断电而停止工作,它的基本原理是通过 ADC(模数转换器)计算电池电压。以 CC2540 芯片用一钮扣电池为例,电池电压从 2.0v~3.0v,即电量的 0%~100%;CC2540 有一 10比特的 ADC,量程范围为0~511,参考电压为 1.25v,最大测量电压为 3.75v,以上信息可以得知: (v/3)/ 1.25 * 511 = adc,则 2.0v=273adc,3.0v=409adc,根据下图可以很容易得知 ADC 转换为电压的公式:Percentage / (X – 273) = 100 / 136 = 25 / 34,变换后为:Percentage = (X - 273) * 25 / 34,为四舍五入提高计算精度则有:Percentage = [(X - 273) * 25 + 33] / 34。
问:蓝牙发射信号功率调整会影响通信距离吗?答:会,以 TI 公司的 CC2540为例,它支持 4种发射功率选择:4dBm、0dBm、-6dBm 和-23dBm,按无线电功率定义:LdBm=10lg(Pwr/1mW),以上 4 种分贝值换算成瓦特为:2.51mW、1mW、0.251mW 和 0.005mW,有效通信距离分别为:30 米、10 米、7 米和 3米。
问:如何知道两个蓝牙通信节点之间的距离?答:要知道蓝牙通信节点(如手机和蓝牙设备)之间的距离,最容易实现的方法是通过读取接收 RSSI(Received Signal StrengthIndication)值来计算。无线通讯中功率与距离的关系如下:其中 A 可以看作是信号传输 1 米远时接收信号的功率,n 是传播因子(它受障碍,温度和湿度等影响) ,r 是节点之间的距离。当确定了常数 A 与 n 的值后,距离 r 就可以根据 PR(dBm)计算出来。 问:如何获取蓝牙节点的接收 RSSI 值?答:具体的设备接收 RSSI 值的方法不一样,以 iPhone 手机为例,iOS 提供 API 函数获取RSSI 值;TI 公司的 CC2540 芯片的 BLE 协议栈中,首先将读取 RSSI 值回调函数挂载到gapRolesRssiRead_t 类型的指针下, 建立连接后, 主设备调用 GAPCentralRole_StartRssi () ,从设备调用GAPRole_SetParameter(GAPROLE_RSSI_READ_RATE, ……)。这样就可以定时读取接收的 RSSI 值了。
问:如何开展读取 RSSI值的实验?答:读取 RSSI 值的实验可以这样搭建,主设备固定位置,向从设备发送信号,从设备 LED光和Buzzer 报警为通信成功,逐次移动从设备,而获取 RSSI 值随物理距离之间的关系。下图是笔者做实验的数据:Distance(m) 1 2 3 4 5 6 7 8 9 10RSSI(dBm) -47 -59 -73 -80 -80 -79 -85 -88 -86 -87Loss(p) 0 0 9 11 27 2 50 32 22 49实验器材为 2 块 CC2540 芯片,主芯片发射功率为 4dBm(2.51mW),Loss 是通信节点中失败次数。
请问楼主这个错误他说是关于标识符,要怎么改
没有提前定义
楼主有没有CC2540控制oled或lcd的程序呢?
错误显示提供电压过低怎么办?
贴吧热议榜
使用签名档&&
保存至快速回贴> > > OS IAR PowerPac TCP/IP for ARM v2.21OS IAR PowerPac TCP/IP for ARM v2.21已有 433451个资源相关资源下载专区上传者其他资源嵌入式系统热门资源本周本月全部文档信息资源大小:24.88MB上 传 者: () 上传日期:资源类型:应用文档资源积分:1分评
论:下载次数:1参与讨论:标&&&&签:分&&&&享:文档简介OS&IAR&PowerPac&TCP/IP&for&ARM&v2.21文件列表.BMP----|000005.BMP----|000010.BMP----|000024.BMP----|000025.BMP----|000027.BMP----|000039.BMP----|000059.BMP----|000068.BMP----|000074.BMP----|000078.BMP----|000092.BMP----|000108.BMP----|000109.BMP----|000113.BMP----|000122.BMP----|Thumbs.db.NET Compact Framework .dep----|lcd_lib.o.d----|main.o.d----|twi_i2c.o.d.deps----|ControlResource.Po----|DCU99Editor.Po----|DuplexEditor.Po.eclipseme.tmp----|emulation----|----|PhoneBook.jad----|----|PhoneBook.jarverified----|classes----|----|com----|----|----|north----|----|----|----|phonebook----|----|----|----|----|model----|----|----|----|----|----|Account.class----|----|----|----|----|----|ApplicationException.class----|----|----|----|----|----|Index.class----|----|----|----|----|----|Model$AccountFilter.class----|----|----|----|----|----|Model$IndexFilter.class----|----|----|----|----|----|Model.class----|----|----|----|----|----|Preference.class----|----|----|----|----|----|UserModel.classui----|ConfirmationDialog.class----|DetailInfoUI.class----|Dialog.class----|DialogListener.class----|IndexFunctionUI$ListIndex.class----|IndexFunctionUI.class----|ListMerchantGroupUI.class----|ListPhoneUI.class----|LoginUI.class----|MerchantGroupDetailInfoUI.class----|NewPhoneUI.class----|SearchPhoneUI.class----|Title.class----|UIController$1.class----|UIController$EventID.class----|UIController.class----|WaitCanvas$1.class----|WaitCanvas.class----|WelcomeUI.classPhoneBookMIDlet.class.metadata----|.plugins----|----|org.eclipse.core.resources----|----|----|.projects----|----|----|----|Nios II Device Drivers----|----|----|----|----|.location----|----|----|----|----|.propertieshello_led_0----|.markers----|.propertieshello_led_0_syslib----|.markers----|.properties.root----|112.tree.safetable----|org.eclipse.core.resourcesorg.eclipse.core.runtime----|.settings----|----|org.eclipse.cdt.core.prefs----|----|org.eclipse.cdt.ui.prefs----|----|org.eclipse.ui.prefsorg.eclipse.ui.workbench----|dialog_settings.xml----|workbench.xml.lock.logversion.ini.myeclipse----|CVS----|----|Repository----|----|Root.settings----|CVS----|----|Entries----|----|Repository----|----|Rootorg.eclipse.core.resources.prefs.sopc_builder----|install.ptf.svn----|prop-basepropstext-base----|readme.txt.svn-basetmp----|prop-basepropstext-baseall-wcpropsdir-prop-baseentriesformat.tmp_versions----|dw4002.modCD-PPARM-TCPIP-BASE-2_21_0----|doc----|----|IAR Systems.jpg----|----|InstallationGuidePP.pdf----|----|PowerPac_FileSystem.ENU.pdf----|----|PowerPac_RTOS.ENU.pdf----|----|PowerPac_RTOS_ARMSuppl.ENU.pdf----|----|PowerPac_TCPIP.ENU.pdf----|----|PowerPac_USB.ENU.pdf----|----|QSnetworkPP.pdf----|----|QSstandalonePP.pdf----|----|QSupgradePP.pdf----|----|pdf.gif----|----|ppfs.htm----|----|pprtos.htm----|----|pptcpip.htm----|----|ppusb.htm----|----|readme.ENU.htmpowerpac----|.svn----|----|text-baseISSetup.dll_Setup.dlldata1.cabdata1.hdrdata2.cablayout.binsetup.exesetup.inisetup.inxautorun.exeautorun.infautorun.ini. Online calibration of Nyquist-rate analog-to-digital converters.pdf..dir.dat.DS_Store.NET Compact Framework mpact Framework ._.DS_Store._CotEditor_346._MacOS_Setup._PortVaR.actionScriptProperties.apriori_config.ccsproject.classpath.config.o.flags.cproject.cvsignore.cxl.depend.dw4002.ko.cmd.dw4002.mod.o.cmd.dw4002.o.cmd.dwg.epautoconf.o.flags.exe.file_storage.o.flags.flexProperties.gitignore.htaccess.indent.pro.message.pdf.project.qmake.internal.cache.screenrc.synopsys_dc.setup.synopsys_pt.setup.untf.usbstring.o.flags.vimrc.xhdl3.xref相关帖子大学堂最新课程请选择理由 辱骂 色情 广告提交若举报审核通过,可奖励2下载分举报人:被举报人:莫妮卡举报的资源分:1* 类型:请选择类型资源无法下载资源分类不正确资源无法使用标题与实际内容不符含有危害国家安全内容含有反动色情等内容含广告内容版权问题,侵犯个人或公司的版权其他* 详细原因:回到顶部EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱service(.cn 或通过站内短信息或QQ:联系管理员okhxyyo,我们会尽快处理。【超多图,超详解】在virtualbox上安装Mac OS X Lion 之 配置过程
1.借用之前已经:OS_X_Lion.iso,下载了最新版本的,然后安装,装完后,设置语言为中文简体。
2.先贴上一些关于在VirtualBox上面安装Mac的帖子,供参考:
3.又去下载了一些(必要的)工具:
4.运行Virtualbox,点击新建:
欢迎使用新建虚拟电脑向导
虚拟电脑名称和系统类型
注意,对于版本的选择,我此处是64位的系统,所以选择了 Mac OS XServer (64Bit),如果你是32位的,则是选择Mac OS XServer
设置内存大小,此处由于我系统是8GB,所以设置了4GB给虚拟机用。
虚拟硬盘中,默认选择 主硬盘,创建新的虚拟硬盘,点击下一步,会跳出:
默认选择 VDI(Virtualbox磁盘映像)即可。
然后是 虚拟磁盘存储细节:
此处设置为 固定大小。
固定大小:优点是不需要以后动态根据使用情况而分配,可提高性能。缺点是,一次性直接占用整个你所分配的,比如30G的硬盘空间。
动态分配:可根据虚拟机实际使用硬盘的大小而只分配用到的那一部分。比如你虚拟机创建完毕了,只用了10G硬盘,那么此时虽然你给虚拟机设置了30G硬盘,但是此时虚拟机大小也只是10G。缺点是,需要虚拟机动态的根据使用情况而去分配对应的空间,效率相对低,性能相对没有固定大小分配的效率高。
然后是虚拟磁盘文件位置和大小:
推荐设置为至少20GB,这样才基本够用。
根据的推荐,如果需要安装Xcode和iOS SDK等,则推荐为至少30GB,我此处设置了足够大的40GB。
点击了创建后,系统就会自动去创建相应的虚拟磁盘了:
吐槽一句,当前语言已设置为简体中文,但是此处创建磁盘的界面,还是英文,看来汉化做的不够完整啊,呵呵。
虚拟磁盘创建好了,结果又回到了这个界面:
由于担心点击创建,其会再次创建一次虚拟磁盘,所以点击了取消,结果创建虚拟机的操作,都丢失了。。。。
还得再重头来一遍。。。。
5.重新弄了一遍,然后在建立完毕虚拟磁盘后,点击“创建”:
然后就可以看到新建的Mac虚拟机了:
选中新建的“Mac OS X Lion”虚拟机,然后点击设置或者右击选择设置:
就打开了虚拟机的设置界面:
进入“系统”一项,然后取消软驱的选择,然后点击光驱,按向上的箭头,把光驱设置为第一启动项,用同样的方法把硬盘设置为第二启动项:
其他项保持默认配置:
芯片组:ICH9(鼠标移动上去,会有提示:注意,ICH9芯片组模拟正处于试验阶段,不推荐使用,除非虚拟机系统需要它(如Mac OS X))
选择 启用IO APIC
选择 启用绝对指点设备
不选 硬件时钟使用国际标准时间(UTC)
接着,设置处理器:
此处由于是4核,所以设置为4.
硬件加速设置保持默认配置:
此处显示设置中,选择了
启用3D加速
启用2D视频加速(此处根据提示,因为我们装的是Mac的系统,其属于Unix类系统,不属于windows系统,所以估计是没啥效果的。后经测试,在点击确定保持设置再重新打开,此项会被自动取消选择的。)
关于存储部分的默认设置为:
去选择一个虚拟光盘:
选择了之前的OS_X_Lion.iso后,就可以看到对应的镜像了:
至此,暂时设置完毕,总体的配置如下。
选中虚拟机后,右键选择启动,或者直接点击上面的启动:
第一次启动,会有关于虚拟电脑控制台 自动独占键盘和鼠标的提示:
然后就可以看到启动后的Lion的光盘图标了:
下面就是正常安装Mac的过程了.
但是结果鼠标点击进入后,出现上面那个独占键盘的提示,所以选择了今后不再提示,然后按照常理,接着键盘输入就应该可以用了,但是却发现输入回车键或者空格键,都不管用,画面还是处于Install DVD的界面。
不知道是当前Virtualbox不能直接安装Lion的DVD,还是键盘没有真正起效,输入的回车键没有传递进去。
无奈,强制使用:控制-&重启:
去重启试试。
然后就可以正常安装了。接下来的安装过程,其实和之前用VMWare安装Mac过程没多大区别。
所以可以参考:
当然也可以看真正的具体过程:
共享此文章:
免费的格式化Javascript源码的网站
查询Unicode字符,且还带Oct,Decimal,Hex,HTML Entity
HTML和Javascript都支持,很好用。IAR工程移植到KEIL下时的种种Bug?-电子产品世界论坛
IAR工程移植到KEIL下时的种种Bug?
&&&&由于种种原因,不得不由IAR转战KEIL的学习,计划将原来IAR下的工程搬运到KEIL下运行,随之而来的一个问题就是二者的兼容性,不得不说一山容不得二虎啊,种种的Bug,闹心啊!
&&&&1.首先一点就是二者的启动文件不同,习惯了IAR下的自动添加启动文件,而KEIL好像略胜一筹,在选择了器件型号之后自动复制启动文件到工程中。这一点必须要注意啊。
&&&&2、第二个不同点就是二者支持的一些变量类型的特殊字符不同, IAR不识别EXPORT;PUBLIC &PendSV_Handler & /*此处IAR识别PUBLIC,需要进行一下替换方能实现正常的工作,// EXTERN &PendSV_Handler /*若用此语句则会出现重复定义的错误。
&&&&3、就是在汇编下,KEIL不识别“//”的注释语言,需要用“;”来代替,还有就是一系列的编程规则,注释必须顶头写,代码空一格或是一个“Tab”.
&&&&4、另外说一下,uCOSII的由IAR搬运KEIL,直接过来肯定是必挂无疑的,最好参考Micrium 官方原文件,利用Micrium 原文件D:\Micrium\Software\uCOS-II\Ports\arm-cortex-m3\Generic\RealView代替原来IAR下的uCOS-II\Ports中的文件,并略做修改使得工程得以正常运行。完成了keil下的正常运行,实现了预期的功能,在此感谢大牛jobs的指点,在此表示衷心的感谢。
同时将我的移植工程贴出来供大家参考之用。
KEIL4.5.3版本+ST3.5的库+uCOSII2.86版。
如果不愿剔除再添加os_cpu_a.asm文件,也可以在原来IAR下的该文件进行如下的修改:
修改os_cpu_a.asm
将原来的 RSEG CODE:CODE:NOROOT(2)
AREA |.text|, CODE, READONLY, ALIGN=2 & & & & ;AREA |.text| 选择段 |.text|。
& & & & & & & & & & & & & & & & & & & & & & & & & & &;CODE表示代码段,READONLY表示只读(缺省)
& & & & & & & & & & & & & & & & & & & & & & & & & & &;ALIGN=2表示4字节对齐。若ALIGN=n,这2^n对齐
THUMB & & & & & & & & & & & & & & & & & & & & ;Thumb 代码
REQUIRE8 & & & & & & & & & & & & & & & & & & &;指定当前文件要求堆栈八字节对齐
PRESERVE8 & & & & & & & & & & & & & & & & & & ;令指定当前文件保持堆栈八字节对齐
除此之外os_dbg.c文件还需要做如下的修改:
修改os_dbg.c
由于编译器不同,使用keil时,需要把
#define& OS_COMPILER_OPT& __root
#define& OS_COMPILER_OPT&&//__root
否则会出现如下的BUG:
推荐个比较不错的移植教程吧,一直完了,再回头看这篇文章,觉得相当的亲切啊
楼主还有在IAR下的工程吗?我正在从KEIL移植到IAR,出了好多错误
如果楼主的英语还好,建议看一下IAR帮助文档里的移植指导教程 。
匿名不能发帖!请先 [
Copyright (C) 《电子产品世界》杂志社 版权所有

我要回帖

更多关于 iar怎么看程序大小 的文章

 

随机推荐