有人试过 IAR6.30.1.3142 编译 stm32f10x 么?

100 views
Skip to first unread message

Grissiom

unread,
Jan 8, 2012, 11:46:29 PM1/8/12
to rt-threa...@googlegroups.com
在我这里都是 Pe147:

Building configuration: project - Debug 
Updating build tree... 
board.c  
Error[Pe147]: declaration is incompatible with "__interwork __softfp unsigned long __get_PSP(void)" (declared at line 52 of "C:\Program Files\IAR Systems\ E:\projects\rt-thread\rt-thread-git-trunk\bsp\stm32f10x\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1084 
Embedded Workbench 6.0\arm\inc\c\intrinsics.h") 
Error[Pe147]: declaration is incompatible with "__interwork __softfp void __set_PSP(unsigned long)" (declared at line 53 of "C:\Program Files\IAR Systems\ E:\projects\rt-thread\rt-thread-git-trunk\bsp\stm32f10x\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1094 
Embedded Workbench 6.0\arm\inc\c\intrinsics.h") 
Error[Pe147]: declaration is incompatible with "__interwork __softfp unsigned long __get_MSP(void)" (declared at line 50 of "C:\Program Files\IAR Systems\ E:\projects\rt-thread\rt-thread-git-trunk\bsp\stm32f10x\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1104 
Embedded Workbench 6.0\arm\inc\c\intrinsics.h") 
Error[Pe147]: declaration is incompatible with "__interwork __softfp void __set_MSP(unsigned long)" (declared at line 51 of "C:\Program Files\IAR Systems\ E:\projects\rt-thread\rt-thread-git-trunk\bsp\stm32f10x\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1114 
Embedded Workbench 6.0\arm\inc\c\intrinsics.h") 
Error[Pe147]: declaration is incompatible with "__interwork __softfp unsigned long __REV16(unsigned long)" (declared at line 177 of "C:\Program Files\IAR Systems\ E:\projects\rt-thread\rt-thread-git-trunk\bsp\stm32f10x\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1124 
Embedded Workbench 6.0\arm\inc\c\intrinsics.h") 
Error[Pe147]: declaration is incompatible with "__interwork __softfp unsigned long __RBIT(unsigned long)" (declared at line 178 of "C:\Program Files\IAR Systems\ E:\projects\rt-thread\rt-thread-git-trunk\bsp\stm32f10x\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1134 
Embedded Workbench 6.0\arm\inc\c\intrinsics.h") 
Error[Pe147]: declaration is incompatible with "__interwork __softfp unsigned long __STREXB(unsigned char, unsigned char *)" (declared at line 185 of "C:\Program  E:\projects\rt-thread\rt-thread-git-trunk\bsp\stm32f10x\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1175 
Files\IAR Systems\Embedded Workbench 6.0\arm\inc\c\intrinsics.h") 
Error[Pe147]: declaration is incompatible with "__interwork __softfp unsigned long __STREXH(unsigned short, unsigned short *)" (declared at line 186 of "C:\Program  E:\projects\rt-thread\rt-thread-git-trunk\bsp\stm32f10x\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1186 
Files\IAR Systems\Embedded Workbench 6.0\arm\inc\c\intrinsics.h") 
Error while running C/C++ Compiler 
……
usart.c  
Error[Pe147]: declaration is incompatible with "__interwork __softfp unsigned long __get_PSP(void)" (declared at line 52 of "C:\Program Files\IAR Systems\ E:\projects\rt-thread\rt-thread-git-trunk\bsp\stm32f10x\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1084 
Embedded Workbench 6.0\arm\inc\c\intrinsics.h") 
Error[Pe147]: declaration is incompatible with "__interwork __softfp void __set_PSP(unsigned long)" (declared at line 53 of "C:\Program Files\IAR Systems\ E:\projects\rt-thread\rt-thread-git-trunk\bsp\stm32f10x\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1094 
Embedded Workbench 6.0\arm\inc\c\intrinsics.h") 
Error[Pe147]: declaration is incompatible with "__interwork __softfp unsigned long __get_MSP(void)" (declared at line 50 of "C:\Program Files\IAR Systems\ E:\projects\rt-thread\rt-thread-git-trunk\bsp\stm32f10x\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1104 
Embedded Workbench 6.0\arm\inc\c\intrinsics.h") 
Error[Pe147]: declaration is incompatible with "__interwork __softfp void __set_MSP(unsigned long)" (declared at line 51 of "C:\Program Files\IAR Systems\ E:\projects\rt-thread\rt-thread-git-trunk\bsp\stm32f10x\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1114 
Embedded Workbench 6.0\arm\inc\c\intrinsics.h") 
Error[Pe147]: declaration is incompatible with "__interwork __softfp unsigned long __REV16(unsigned long)" (declared at line 177 of "C:\Program Files\IAR Systems\ E:\projects\rt-thread\rt-thread-git-trunk\bsp\stm32f10x\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1124 
Embedded Workbench 6.0\arm\inc\c\intrinsics.h") 
Error[Pe147]: declaration is incompatible with "__interwork __softfp unsigned long __RBIT(unsigned long)" (declared at line 178 of "C:\Program Files\IAR Systems\ E:\projects\rt-thread\rt-thread-git-trunk\bsp\stm32f10x\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1134 
Embedded Workbench 6.0\arm\inc\c\intrinsics.h") 
Error[Pe147]: declaration is incompatible with "__interwork __softfp unsigned long __STREXB(unsigned char, unsigned char *)" (declared at line 185 of "C:\Program  E:\projects\rt-thread\rt-thread-git-trunk\bsp\stm32f10x\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1175 
Files\IAR Systems\Embedded Workbench 6.0\arm\inc\c\intrinsics.h") 
Error[Pe147]: declaration is incompatible with "__interwork __softfp unsigned long __STREXH(unsigned short, unsigned short *)" (declared at line 186 of "C:\Program  E:\projects\rt-thread\rt-thread-git-trunk\bsp\stm32f10x\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1186 
Files\IAR Systems\Embedded Workbench 6.0\arm\inc\c\intrinsics.h") 
Error while running C/C++ Compiler 
 
Total number of errors: 272 
Total number of warnings: 1 

http://supp.iar.com/Support/?note=75890&from=search+result 说是 IAR 6.20 以上的版本需要用自带的 CMSIS…… 而 RTT 自带的 CMSIS 是改动过的(改写了几个中断向量)。那么这个是不是基本上就无解了?……

--
Cheers,
Grissiom

bernard

unread,
Jan 8, 2012, 11:54:31 PM1/8/12
to rt-threa...@googlegroups.com
IAR使用起来很麻烦。

CMSIS后面的版本RTT应该都没更改了(包括异常向量),还不知道后续IAR版本会如何处理。感觉跟着IAR就是费事,升级个版本可能会把你原来的工程全部弄废掉

Grissiom多试试GCC版本吧,这个是我们以后的重点(当然Keil MDK也会完善地支持)。

Grissiom

unread,
Jan 9, 2012, 12:04:17 AM1/9/12
to rt-threa...@googlegroups.com
2012/1/9 bernard <bernar...@gmail.com>

IAR使用起来很麻烦。

CMSIS后面的版本RTT应该都没更改了(包括异常向量),还不知道后续IAR版本会如何处理。感觉跟着IAR就是费事,升级个版本可能会把你原来的工程全部弄废掉


嗯~ 本来想玩玩试试的,看来还是算了,唉……
 
Grissiom多试试GCC版本吧,这个是我们以后的重点(当然Keil MDK也会完善地支持)。


嗯,GCC 编译是没问题的,就是调试貌似还没有很方便的方法,gdb 比较头疼…… 其实我用 MDK 主要就是用它的调试…… 不支持 C99 有时还是有些小不爽……



--
Cheers,
Grissiom

prife

unread,
Jan 9, 2012, 12:33:56 AM1/9/12
to rt-threa...@googlegroups.com
UP,我准备假期好好折腾折腾eclipse + gcc,期望的目标是完美替代mdk。 主要是希望完美解决调试问题。 现在网上到也有调试方案,太麻烦。求志同道合者组队。。。
--
把有限的时间投入到无限的学习中去

Hu Kyle

unread,
Jan 9, 2012, 12:54:39 AM1/9/12
to rt-threa...@googlegroups.com

一直在用 eclipse +gcc,感觉没什么啊,为什么都说 gcc调试麻烦呢?

bernard

unread,
Jan 9, 2012, 1:07:36 AM1/9/12
to rt-threa...@googlegroups.com
gzhuli, 
你是使用什么连接目标板?openocd?我手上有套openocd,还没开始折腾呢

Hu Kyle

unread,
Jan 9, 2012, 1:13:39 AM1/9/12
to rt-threa...@googlegroups.com

Jlink+gdb server

Ren Wei

unread,
Jan 9, 2012, 1:14:04 AM1/9/12
to rt-threa...@googlegroups.com

Elcipse+gcc,我觉得完全可以替代MDK, 我用的是Codesoucery的工具链+(openocd+openjtag),在CortexM3 CortexM4, Cortex-A8 Cortex-A9上都试过。

 

发件人: rt-threa...@googlegroups.com [mailto:rt-threa...@googlegroups.com] 代表 prife
发送时间: 201219 13:34
收件人: rt-threa...@googlegroups.com
主题: Re: 有人试过 IAR6.30.1.3142 编译 stm32f10x 么?

Grissiom

unread,
Jan 9, 2012, 1:48:37 AM1/9/12
to rt-threa...@googlegroups.com
2012/1/9 Ren Wei <renwe...@gmail.com>

Elcipse+gcc,我觉得完全可以替代MDK, 我用的是Codesoucery的工具链+(openocd+openjtag),在CortexM3 CortexM4, Cortex-A8 Cortex-A9上都试过。


这个 openocd 是哪个版本的?我用的 git 版,曾经好用过,之后又不行了……



--
Cheers,
Grissiom

prife

unread,
Jan 9, 2012, 1:55:16 AM1/9/12
to rt-threa...@googlegroups.com
查过一些资料,也看过他们的调试方案,就是很麻烦啊,能做到mdk那种,一键烧录,在线调试么?我是个懒人,希望工具月傻瓜越好。太复杂的工具玩不转啊。
其次,openjtag好贵啊,买不起。盗版的jlink才80块。或者用基于stm32的兼容jlink,成本才20块。
--
把有限的时间投入到无限的学习中去

Ren Wei

unread,
Jan 9, 2012, 2:06:35 AM1/9/12
to rt-threa...@googlegroups.com

0.6.0开始用起来是比较麻烦。在linux环境下,可能没什么问题。在windows环境下最好结合cygwin(用户手册上推荐的). 我的配置windowscygwin+开源USB驱动(libusb+lib_ftdi)Openocd我是从源码开始编译。

在使用过程中0.40.4之前的变化很大,从0.5开始.cfg中的注释格式又发生了变化

只允许:

 

# 注释

配置

 

这种格式,而不允许

 

配置 # 注释

 

这种格式。

 

Openocd暂时还没有全支持Cortex-M4, 配置文件是在Cortex-M3的基础上改的。(我对Cortex-M4的调试是在FreescaleK60上进行的)。

 

openocd进行GDB调试,一般是可以的,但是一些高级方法,如ETMITM(针对ARM而言),我没试过,也不知怎么搞。

 

总之,如果想比较好的掌握的基于openocd的调试方法,最好先通读下使用手册。

 

 

发件人: rt-threa...@googlegroups.com [mailto:rt-threa...@googlegroups.com] 代表 Grissiom
发送时间: 201219 14:49
收件人: rt-threa...@googlegroups.com
主题: Re: 答复: 有人试过 IAR6.30.1.3142 编译 stm32f10x 么?

Ren Wei

unread,
Jan 9, 2012, 2:15:20 AM1/9/12
to rt-threa...@googlegroups.com

openocd+openjtag最大好处就是1.免费,2.上层调试是基于gdb协议. 3. 不会有什么版权纠纷, 毕竟jlinkulink之类的东西,对个人而言,用用盗版无所谓;对于开发产品是个隐患啊。

使用openocd+openjtag2410/2440, lpc2000, at91,以及stm32进行开发,效果还是不错的,可以一键烧录,甚至可以直接写入Nandflash

 

免费的东西,就是不好上手,但功能确实强大。

 

另外0penocd0.6.0支持Jlink, ulink.

 

最后补充一点:用多了盗版的东西,我想最终还是得不偿失的。

 

发送时间: 201219 14:55
收件人: rt-threa...@googlegroups.com
主题: Re: 答复: 有人试过 IAR6.30.1.3142 编译 stm32f10x 么?

Grissiom

unread,
Jan 9, 2012, 2:32:17 AM1/9/12
to rt-threa...@googlegroups.com
2012/1/9 Ren Wei <renwe...@gmail.com>

0.6.0开始用起来是比较麻烦。在linux环境下,可能没什么问题。在windows环境下最好结合cygwin(用户手册上推荐的). 我的配置windowscygwin+开源USB驱动(libusb+lib_ftdi)Openocd我是从源码开始编译。

在使用过程中0.40.4之前的变化很大,从0.5开始.cfg中的注释格式又发生了变化

只允许:

 

# 注释

配置

 

这种格式,而不允许

 

配置 # 注释

 

这种格式。

 

Openocd暂时还没有全支持Cortex-M4, 配置文件是在Cortex-M3的基础上改的。(我对Cortex-M4的调试是在FreescaleK60上进行的)。

 

openocd进行GDB调试,一般是可以的,但是一些高级方法,如ETMITM(针对ARM而言),我没试过,也不知怎么搞。

 

总之,如果想比较好的掌握的基于openocd的调试方法,最好先通读下使用手册。


嗯,如果 openocd 好用的话就可以把开发环境切换到 Linux 了~ 爽~;P



--
Cheers,
Grissiom

prife

unread,
Jan 9, 2012, 2:34:38 AM1/9/12
to rt-threa...@googlegroups.com
之所以转到eclipse上就是不想用盗版的MDK了。
但是盗版的jlink确实是我花钱买的,所以还可以忍受,我也只能先在软件上不用盗版,jlink这种硬件盗版我还是得继续用,要不然程序都没办法开发了。
openjtag目前确实买不起。在这里我要谴责暑假联系我做wince项目的那个人,我白做了一个月,最后他说不要了,于是我就囧了。所以现在投身开源,当个志愿者酱油度日。

只能一步一步来了。虽然脚步笨拙,但是我在努力改变。
--
把有限的时间投入到无限的学习中去

魏伟

unread,
Jan 9, 2012, 3:34:12 AM1/9/12
to rt-threa...@googlegroups.com
我对这问题的解决办法是把那几行注释掉。
我遇到的问题才怪呢,finsh不能用,但是在程序里面直接用list()等命令在串口有输出,晚上在看看怎么解决。有遇到同样问题的指导一下菜鸟!

whoamiwww

unread,
Jan 9, 2012, 4:57:46 AM1/9/12
to rt-threa...@googlegroups.com
高人 谢谢如何 配置 eclipse吧 。 这个东西 ,我也在关注 。但没有资料 。很害怕这个东西 。 

whoamiwww

unread,
Jan 9, 2012, 6:14:25 AM1/9/12
to rt-threa...@googlegroups.com
看来还是比较可怕的
 
不熟悉到一定程度 ,很难配置的感觉 。要求知识面太多了 。害怕 。

zchong

unread,
Jan 9, 2012, 6:41:10 AM1/9/12
to rt-threa...@googlegroups.com
这个是CMIS库的问题吧,ST官方网站有个文档讲如何处理这种情况的

TN0830 How to use EWARM 6.2x with projects built with EWARM 6.1 and previous versions.pdf

jaso...@163.com

unread,
Jan 9, 2012, 10:14:41 PM1/9/12
to rt-thread-cnusers
很厉害的开发组合,能这样做,基本上可以自己对硬件写库文件了。
 
 
2012-01-10


发件人: Ren Wei
发送时间: 2012-01-09  14:12:00
抄送:
主题: 答复: 有人试过 IAR6.30.1.3142 编译 stm32f10x 么?

onelife

unread,
Jan 12, 2012, 11:08:19 AM1/12/12
to rt-threa...@googlegroups.com
J-Link 有 Linux 版本的说。以前俺试图用过 OpenOCD,应该是0.4版,无奈其不支持 SWD,就搁一边儿了。不知现在支持没?

Regards,
onelife


2012/1/9 Grissiom <chaos....@gmail.com>

Grissiom

unread,
Jan 12, 2012, 8:07:13 PM1/12/12
to rt-threa...@googlegroups.com
2012/1/13 onelife <onelif...@gmail.com>

J-Link 有 Linux 版本的说。以前俺试图用过 OpenOCD,应该是0.4版,无奈其不支持 SWD,就搁一边儿了。不知现在支持没?


嗯,但是在我这里有时会发生芯片锁死的状况,只能在 win 下的 J-Link  里 unsecure chip,Linux 版的貌似没有这个指令,于是悲催了……



--
Cheers,
Grissiom
Reply all
Reply to author
Forward
0 new messages