【共享】25,000次下载!免费和开源的ARM Cortex CM3&CM0开发工具

2011年05月08日 22:59    发布者:Chocore
CooCox CoIDE特征:

1. 支持ARM Cortex M3/M0系列芯片的编译、下载、链接和调试
2. 285个组件for ARM Cortex M3/M0系列芯片,包括SPI,SSP,CAN和其他外设模块
3. 152个例程for ARM Cortex M3/M0系列芯片,充分体现各外设模块应用,用户亦可上传程序
4. 简单易用,可快速创建一个可运行的嵌入式程序,节省70% 的开发时间!

CooCox CoIDE v1.2.3

新增支持芯片:
1.ST:
STM32F100C4,STM32F100C6,STM32F100C8,STM32F100CB,STM32F100R4,STM32F100R6,STM32F100R8,STM32F100RB,
STM32F100RC,STM32F100RD,STM32F100RE,STM32F100V8,STM32F100VB,STM32F100VC,STM32F100VD,STM32F100VE,
STM32F100ZC,STM32F100ZD,STM32F100ZE,
STM32F101C4,STM32F101C6,STM32F101C8,STM32F101CB,STM32F101R4,STM32F101R6,STM32F101R8,STM32F101RB,
STM32F101RC,STM32F101RD,STM32F101RE,STM32F101RF,STM32F101T4,STM32F101T6,STM32F101T8,STM32F101TB,
STM32F101V8,STM32F101VB,STM32F101VC,STM32F101VD,STM32F101VE,STM32F101VF,STM32F101VG,STM32F101ZC,
STM32F101ZD,STM32F101ZE
STM32F102C4,STM32F102C6,STM32F102C8,STM32F102CB,STM32F102R4,STM32F102R6,STM32F102R8,STM32F102RB,
STM32F103RF,STM32F103RG,STM32F103VF,STM32F103VG,STM32F103ZF,STM32F103ZG
2.Energy Micro:
EFM32G200F32,EFM32G200F64,EFM32G210F128,EFM32G230F32,EFM32G230F64,EFM32G230F128,
EFM32G280F32,EFM32G280F64,EFM32G280F128,EFM32G290F32,EFM32G290F64,EFM32G290F128
3.NXP:
LPC1759,LPC1767

CooCox CoIDE v1.2.4

新增支持NGX,picoJTAG和KT-Link调试器

下载:37123

欲了解更多,请访问 http://www.coocox.org/CN/

开始盖楼啦~请关注后面的信息,有更多惊喜哦~
该文章有附件资料,如需下载请访问 电脑版

网友评论

shuangyue0808 2011年05月12日
这是什么?
Chocore 2011年05月13日
CoIDE是一款免费和开源的嵌入式开发软件,用户可以通过勾选组件和添加例子在5分钟内创建一个最基本的应用。CooCox的官网www.coocox.org/cn,这里有更详细的介绍。
cyber211 2011年05月16日
这么好的这么好的的工具,傻瓜组态式编程?
youyou_zh 2011年05月22日
没用过,可以尝试一下
Chocore 2011年05月30日
回复2楼shuangyue0808:
CoIDE是一款免费和开源的嵌入式开发软件,用户可以通过勾选组件和添加例子在5分钟内创建一个最基本的应用。CooCox的官网www.coocox.org/CN/,这里有更详细的介绍。
之前忘点回复了。。。
Chocore 2011年05月30日
回复4楼cyber211:
唔。。可以这么说~
453523869 2011年05月30日
路过 看看
ckq1988 2011年06月04日
没用过,可以尝试一下
jixzang 2011年06月04日
不错,谢谢楼主分享
qdwxj112 2011年06月09日
谢谢楼主!
yoyo1234ok 2011年06月18日
:D
Chocore 2011年07月04日
【7月伊始,大礼送上】各种基于嵌入式RTOS CoOS的源代码
继之前向大家推荐的“傻瓜组态式编程软件”CooCox CoIDE,今天再隆重推荐一款最新嵌入式RTOS——CoOS。
推荐原因:
1. 免费并开源
    关键词一,套用跟帖的话,“为穷人谋福利”;关键词二,开源旨在以协作加速创新。看别人的代码也能碰撞出思维的小火花吧,有木有?
2. ARM Cortex M3及M0定制操作系统
    CoOS支持所有ARM Cortex M3和Cortex M0器件,所有的哦~
3. 高度可裁剪性,最小系统内核仅974Byte
    OsConfig.h文件中包括了CoOS 的所有可配置项和裁剪项目,用户根据需要的系统配置修改相应项目即可,简单方便。
4. 支持优先级抢占和时间片轮转
    两种任务调度机制。可以在OsConfig.h中配置CFG_PRIORITY_SET_EN值为1,使能任务的优先级抢占调度,不同优先级任务间为优先级抢占调度,同级优先级任务间为时间片轮转调度。
5. 自适应任务调度算法
6. 零中断延时时间
    额…几乎为0,完全为0是不可能地…
7. 堆栈溢出检测
8. 支持信号量、邮箱、队列、事件标志、互斥等同步通信方式
    其中互斥区域还考虑了优先级反转问题,并通过优先级继承的方法解决了这一问题。
9. 支持多种编译器:ICCARM、ARMCC、GCC
    这就意味着CoOS不仅可以在CoIDE中使用(CoOS已经集成到了CoIDE中,通过勾选即可直接使用),还能独立应用于MDK和IAR中。给力吧~O(∩_∩)O~
    MDK中的应用可以参考《基于ATSAM3U4E的MP3播放器的应用方案》,开发人员有博文详细介绍开发过程。

正餐献上——基于CoOS的示例和应用方案(MDK,IAR,CoIDE中的各种源代码)
网址:http://www.coocox.org/CN/CoOSGuide/Examples.htm
点此下载好学易懂的CooCox CoOS用户手册:http://www.coocox.com/downloadfi ... S_User_Guide_CH.pdf
Chocore 2011年07月08日
【代码自动生成】CoSmart——管脚配置?动动鼠标的事儿!
复杂的功能调用几句库函数就搞定,基本的管脚配置却整的你焦头烂额?不小心管脚使用冲突了,不得不修改大段代码?前后翻找数据手册的时候,觉得有这时间自己都能在键盘上噼里啪啦出多少行程序了?无需困扰,CoSmart,让你只需动动鼠标,轻轻松松实现管脚配置!

7月5日,CooCox强势发布了一款智能管脚配置和代码自动生成工具——CoSmart。

http://www.coocox.org/images/CoSmart/CoSmart_Screenshot.png

CoSmart功能:
1. 配置管脚复用设置
    在左下方窗口可方便地使能/除能某管脚或选择某功能复用管脚的状态。
2. 分析管脚配置冲突
    当某管脚配置冲突时会以醒目的红色提示。
3. 指明I/O引脚特征
    鼠标在引脚图上移至某引脚时会显示该引脚特征
4. 生成可用的C代码
    配置完毕后点击按钮一键生成可用的C代码。

下载地址及快速使用入门见http://www.coocox.org/CN/CoSmart.html
欲了解更多关于CooCox的信息,请访问http://www.coocox.org/CN/

目前CoSmart V1.0支持NUC140系列芯片,欢迎大家试用并提出宝贵意见!后续将支持更多芯片,敬请期待~
Chocore 2011年07月18日
【IAR调试插件】CoIARPlugin支持LM3Sxx&LPC1763啦~更新增支持Amontec JTAGKey调试器
继推出智能管脚配置和代码自动生成工具CoSmart V1.0后,CooCox于7月15日发布了IAR调试插件CoIARPlugin V1.2.2。
新版本的CoIARPlugin不仅新增了对TI LM3Sxx系列及NXP的LPC1763芯片的支持,更新增支持FTDI调试器Amontec JTAGKey。至此,CoIARPlugin支持的调试器有CooCox Colink,CoLinkEx,NGX,PicoJTAG,KT-Link,Amontec JTAGKey,Olimex-Open OCD,Stellaris-ICDI,及新唐最新原版Nu-link。
此次更新还解决了在Win7下RDI设置非管理员身份不能保存的BUG,Win7用户可放心使用。
详情请见http://www.coocox.org/CN/CoLinkGuide/CoIARPlugin_Updates.htm

某个用户的需求:“Can I use nxp lpcexpresso board with coocox as emulator?” http://www.coocox.org/Forum/topic.php?id=582不是第一次有人提出此需求了,不知道NXP是否可以考虑开发接口呢?
欢迎大家到CooCox论坛提出问题和宝贵建议!

CooCox Colink & CoLinkEx的硬件信息都是公开的,您可以DIY,具体信息参考http://www.coocox.org/CN/CoLinkGuide/CoLinkDIY.htm
如果您不方便制作,还可以考虑购买Colink(现货抢购中)和CoLinkEx(预计一月后到货,可预订)。

欲了解CooCox更多信息,请访问http://www.coocox.org/CN/
lixupeng 2011年07月18日
:)收下!!
Chocore 2011年07月22日
【给个支点,撬动地球】支点 = 393个组件 + 327个例程-------CooCox CoIDE
阿基米德曾说:“给我一个支点,我可以撬动整个地球。”在基于ARM Cortex-M3和Cortex-M0的嵌入式开发领域里,CooCox CoIDE给广大用户提供了一个免费的支点,最新统计数据表明,这个支点 = 393个组件 + 327个例程。

作为一款“傻瓜组态式编程”软件,CoIDE将所有的启动代码、外围库、驱动、OS等抽象为一个个组件,其中大部分组件都有相应的例程。使用时,用户只需通过勾选组件和添加例程即可快速建立一个基本的应用。

众人拾柴火焰高。现有的组件和例程中,除了CooCox官方提供的程序外,还有用户上传的程序,当然所有组件和例程都标明了作者。显而易见,在CooCox和用户的共同努力下,支点仍将不间断升级……

组件&例程支持的芯片列表
Atmel: AT91SAM3Ux
Energy Micro:EFM32G2xx,EFM32G8xx
NXP:LPC11c1x,LPC11xx,LPC13xx,LPC17xx
Nuvoton:NUC100,NUC120,NUC130,NUC140,NuMicroM051系列
ST:STM32F100x,STM32F101x,STM32F102x,STM32F103x,STM32F105x,STM32F107x
TI:LM3S19xx,LM3S2xxx,LM3S3xxx,LM3S5xxx,LM3S6xxx,LM3S8xx,LM3S8xxx,LM3S9xxx

P.S.:关于例程
1.勾选组件后,CoIDE左上方窗口显示组件名(相应例程数),点击即出现例程窗口。目前此处例程数为327
2.鼠标点击某组件,Help窗口显示组件相关信息,部分组件信息有Hello world项,即该组件的简单例程
如此说来,例程数大于327呀~

组件&例程下载地址/本文数据来源:http://www.coocox.org/Vendors.php
欲了解CooCox CoIDE相关信息,请访问 http://www.coocox.org/CN/CooCox_CoIDE.html
Chocore 2011年07月30日
整理了一些关于CooCox CoIDE最新的、实用的消息,希望对你有用。往下看↓
1. 7月21日已完成ST-LINKII的支持,等下次(就在最近了)CoIDE升级时一起发布。欢迎ST用户来体验~
2. 寄存器助手CoAssistant有CoIDE集成版和在线版两种版本。前者可点击CoIDE菜单栏的View→Peripherals查看,后者则可方便地在线使用。不知道你有没有用过呢?错过可惜啊~
    CoAssistant介绍及在线版本入口:http://www.coocox.org/CN/CoAssistant.htm
3. CoIDE使用GCC编译器。要将工程从其他IDE移植到CoIDE也不难,这里就有现成的例子http://www.coocox.org/Forum/topic.php?id=652,自己动手试试?
4. When will CooCox support STM32F207xx? http://www.coocox.org/Forum/topic.php?id=492
    有这个需求的人貌似还不少,可惜暂时还拿不到ST提供的板子……有类似需求的筒子们尽管上论坛提啊~
5. 关于CoOS的稳定性http://www.coocox.org/Forum/topic.php?id=552
    在其他论坛也看到有人担心这个问题,这里给大家做一个比较:
稳定性直接决定最终产品的质量。在这一方面,uCOSII因任务调度算法的事件响应时间都为常数,加之其流传甚广,其稳定性已无可挑剔。
    有个同事曾经在同一个开发板上移植了基于Keil RTX、uCOSII及CooCox CoOS这三种操作系统的同一个算法,CooCox CoOS和uCOSII均能正常运行,而Keil RTX则会在运行一段时间后出现堆栈溢出的现象。在试验过程中暂未发现其他问题,但就这次试验而言,CooCox CoOS在稳定性方面还是要胜于Keil RTX的。
    由于FreeRTOS应用比较复杂,暂未做评估,但据某论坛上说,FreeRTOS在设置成中等优化的时候就会出现问题。若此种说法属实,FreeRTOS的稳定性相比其他三种应该是最差的。

CooCox CoIDE V1.2.6即将上线,敬请期待……
首次听说CoIDE的筒子请移步http://www.coocox.org/CN/CooCox_CoIDE.html
jeremy414560967 2011年08月09日
我最近也在搞STM32的项目,
123654789 2011年08月12日
这是个很好的软件   顶
Chocore 2011年08月12日
与之前约每周一次的更新频率相比,此次CooCox的更新步伐明显放慢了。

实际上CoIDE V1.2.6的发布筹备已久,之所以仍未更新,一是我们想将最完善的成果呈现给大家,这就需要全面的测试;二是中途根据用户的反馈和需求又添加了部分功能,修正了一些BUG,使得新版本更加实用、稳定。好汤还需文火熬,好软件当然亦需时间的雕琢。让我们拭目以待吧~

之前曾说过CoIDE V1.2.6已支持ST-Link,这一功能留待新版CoIDE发布才能体验未免遗憾,便先由CoFlash小试牛刀了。
今天,CooCox发布了CoFlash V1.3.6,新增支持ST-Link,Nu-Link-pro,OpenJTAG三大调试器。此外,之前的算法不支持部分版本的STM32F1xx系列芯片,新版CoFlash修复了这一问题。
CooCox CoFlash是专门用于ARM Cortex-M0&Cortex-M3的独立编程软件,用户可方便的自定义算法以支持暂不支持的芯片。详情请见http://www.coocox.org/CN/CoFlash_Programmer.htm
推荐一篇博文:《CooCox Tool——硬件开发者的新选择》这篇对CooCox工具系列介绍得比较全面,节选3张图片如下:data/attachment/album/201108/12/39140_1313145109Cwk8.jpg data/attachment/album/201108/12/39140_1313145120exY5.jpgdata/attachment/album/201108/12/39140_1313145127gjls.jpg  
Chocore 2011年08月23日
CooCox日前更新了STM32F10x及LPC12xx的组件和例程,其中STM32F10x组件为3.5.0版本,LPC12xx为CoIDE新增支持芯片。用户可以使用CoIDE进行更新,也可访问http://www.coocox.org/Vendors.php直接下载。

组件更新方法:点击CoIDE组件视图右上角的刷新按钮,CoIDE会链接CooCox服务器刷新组件页面。刷新完成后,用户可以在每个有更新的组件后面看到update或download的链接,点击该链接即可把更新后的组件下载到本地使用。

例子刷新方法:勾选组件后,在左上角的组件视图点击组件名称,CoIDE会后台刷新和下载例子,等刷新和下载完成后,再次点击这个组件名称可以看到有例子被刷新。

CoIDE在编辑模式和调试模式时的视图如下所示:
data/attachment/album/201108/23/39140_13140807253mrL.jpg data/attachment/album/201108/23/39140_1314080751F21Q.jpg


CooCox Tools是一套完整的免费开发工具。它由组态式集成开发环境CoIDE,嵌入式实时多任务操作系统CoOS,调试探测器Colink / CoLinkEx,Flash编程软件CoFlash,智能管脚配置及代码自动生成工具CoSmart,以及寄存器助手CoAssistant(在线版/CoIDE集成版)组成。

data/attachment/album/201108/23/39140_13140807573XmL.jpg

欲了解CooCox更多信息,请访问CooCox官网http://www.coocox.org/CN/
Chocore 2011年09月02日

真的免费,真的开源,真的随意用!无论商用或教学,均无任何限制!这就是CooCox工具。

询问CooCox工具是否可以商用的邮件一直存在,也许是大家没有找到网站中的“使用条款”,也许是“使用条款”说的不够清晰明确,也可能是用户还是不放心是不是真的可以不负任何责任地用于商业用途。CooCox使用条款中关于软件使用是这样约定的:

软件的使用

CooCox CoOS是免费和开源的, 它遵从BSD(Berkly Software Distribution)许可,并且在这种许可下,它可以用于商业应用。
CooCox Colink插件,CoSmart,CoIDE,CoBuilder,CoDebugger和CoFlash都是免费不开源的,它们均可以免费下载,安装和使用于非商业应用或商业应用。


这里需要补充说明的是,所有CooCox软件均可免费使用,但开源的只包括CoOS和Colink以及CoLinkEx硬件电路。此处免费使用包括商用或教学用,均无需承担任何责任。也无需向CooCox组织申请。我们欢迎您的使用,欢迎您帮我们一起推广免费的工具。

另外,CooCox可以向广大用户承诺,我们绝对不会“先养羊后宰羊”,我们已申明的免费工具将永久免费,绝对不会等聚集了成熟用户后转为收费。因为CooCox是希望聚集越累越多的工程师到这个平台,大家一同贡献,分享和交流。等到汇聚的资源不计其数后,嵌入式开发可以变得信手拈来——这就是我们的愿景!

文章来源:CooCox新浪官博



【最新资讯】CoIDE V1.2.6发布进入倒计时啦~

新版CoIDE已进入后期测试阶段,将于下周与用户见面。
经测试用户反馈的调试相关问题已全部解决,包括J-Link,Colink,CoLinkEx在内的各种调试器均可稳定工作,更新增支持ST-Link。
敬请关注http://www.coocox.org/CN/
Chocore 2011年09月13日
由于架构调整,新版CoIDE不再以V1.2系列命名,正式步入V1.3.0时代。

CoIDE V1.3.0增强
-------------

增加:支持芯片LPC1200系列,TI部分芯片,NUC130和140部分芯片
增加:LPC1200组件库及例程
更新:STM32组件和例程
增加:支持新加调试器: Nu-Link-pro,ST-Link,OpenJTAG
增加:支持打开MDK工程
修复:修改Nuvoton芯片名称
增加:登录和注销的功能
增加:显示当前所选芯片的功能
增加:beforebuild 和afterbuild功能
增加:Flash调试和Ram调试选项
修复:进入调试弹出program is not being run的错误
修复:Jlink用不起来的bug
修复:修改SAM3U系列芯片的memory.ld生成有错误的bug

详情请见http://www.coocox.org/CN/CooCox_CoIDE.html

用户手册即将同步更新,敬请关注!
yinghuayuan 2011年09月17日
回复1楼Chocore: 感谢分享
Chocore 2011年09月19日
1. 关于J-link调试自CoIDE 1.2.5支持J-link后,很多用户因为J-link的license和jflash脚本的限制,用不起来,所以CoIDE 1.3.0修改了J-link调试的部分,直接用GDB命令下载代码到芯片中,而不用JFlash的下载方式,程序在进入调试后自动下载。
也是考虑到license的问题,目前的版本移除了J-link直接下载和擦除的功能,下一版本会考虑重新加上这两个功能并避开license的限制。点此了解如何在CoIDE 1.3.0中使用J-link 。
2. 关于Include PathsCoIDE 1.3.0增加了这个功能:CoIDE编译时,会自动搜寻工程下面的文件夹,包括Linked Folder文件夹。如果该文件夹下有.h文件,就自动添加到工程的Include Paths里。所以之前的工程在CoIDE 1.3.0 中编译可能出现找不到头文件的情况。
此时你可以手动添加头文件路径到build.xml中的Include Paths,或修改Linked Folder的名字,或修改头文件包含语句(如将#include “grib/grlib.h”改为#include “grlib.h”)。
由于架构调整,可能需要用户新建工程,或者重复打开才能使用以前的工程。
3. 关于打开MDK工程通过Open Project,选择以.uvproj为后缀的文件,打开,即可转换MDK工程为CoIDE工程。现在这个功能还有一些限制,比如只支持一种配置模式,只能打开在MDK下打开过的工程(编译需要.dep文件),涉及到编译器的文件需要用户手动修改(MDK和CoIDE的编译器不同,与编译器相关的文件在转换时没有被拷贝)等。但这只是一个尝试和开始,我们可以期待这个功能将来越做越好。如果用户在使用中有任何问题和建议,欢迎联系CooCox! 4. 关于RAM调试CoIDE 1.3.0在build.xml文件中增加了Flash调试和RAM调试的选项。Flash调试是默认的,RAM调试则还需一些额外的设置。不同芯片设置方法也可能不同。
例如:1)STM32F10X系列芯片在cmsis_boot文件夹,system_stm32f10x.c文件,SystemInit()函数中,有这样的语句#ifdef VECT_TAB_SRAMSCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */#elseSCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */#endif所以只需打开build.xml文件,选择Debug in RAM,并在Defined Symbols中添加VECT_TAB_SRAM宏即可。
2)LPC17xx系列芯片在cmsis_boot文件夹,system_LPC17xx.c文件,SystemInit()函数中,有这样的语句#if (__RAM_MODE__==1)SCB->VTOR= 0x10000000 & 0x3FFFFF80;#elseSCB->VTOR= 0x00000000 & 0x3FFFFF80;#endif所以只需选择Debug in RAM,并在system_LPC17xx.c文件中加入语句#define
__RAM_MODE__ 1即可。
3)找不到如1)2)中语句的芯片如LM3S系列选择Debug in RAM后,在cmsis_boot文件夹,system_lm3s.c文件,SystemInit()函数中,添加语句SCB->VTOR = 0x20000000 | 0x0; /* Vector Table Relocation in Internal SRAM. */由于VTOR定义在core_cm3.h文件中,还需添加头文件包含语句#include "core_cm3.h"。
CoIDE 1.3.0在线用户手册英文版已更新,点此查看。中文版用户手册及PDF版用户手册也即将更新,敬请关注。
Chocore 2011年09月21日
1.关于J-link Edit Scripts & Other-adapter
CoIDE 1.3.0中,J-link的调试启动脚本(包括复位方式,是否运行到main)已经固化到代码里了,所以脚本编辑框是空的,用户编辑脚本时只需填充GDB设置脚本。

CoIDE 1.3.0移除了调试配置中的Other-adapter项。该项是参照J-link的配置设置的,如果有需要,用户可以将J-link项当做Other-adpter项使用。
例如有用户用Other-adpter实现了在CoIDE中使用LPC-link(LPCXpresso),详情见http://www.coocox.org/Forum/topic.php?id=741


2. 关于Include Paths
有用户反馈如果Include Paths中的文件不在工程目录下,则手动添加的包含路径就不能保存。这是一个BUG。
避免这一BUG的方法是使用Add Linked File / Add Linked Folder功能(工程名处点击右键,或点击菜单栏的File),把想参与编译的文件或文件夹链接进来就行。

还有用户反馈,Build工程时,工程文件夹中的源文件会全部自动编译链接,从而出错。

下一版本的CoIDE会修复这两个BUG,并添加从工程中移除文件但不删除文件的功能。

有用户对CooCox提出了Wishlist,你是不是也和他有类似的想法呢?欢迎提出你的问题或建议!
你还可以加入CooCox工具群167693982 / CoOS群77814606参与交流讨论。


PS:最新消息,CoIDE用户手册在线版已全部更新~
tlk632 2011年09月24日
没用过,尝试一下
Chocore 2011年09月28日
如先前所说,CooCox工具均是免费的,其中开源的有CoOS和Colink / CoLinkEx硬件电路。
“免费”和“开源”这样的词,总会让人既跃跃欲试,又有所顾虑:真的可以随意用?后续会不会有什么麻烦?商用也行吗?
为了让用户完全放心,CooCox将规范用户协议。新的协议即将发布,原始协议见http://www.coocox.com/CN/policy.htm
下面这篇文章转载自CooCox新浪官博。


因CooCox用户数及影响力越来越大,CooCox团队也逐渐提高了对软件及代码协议的重视。在收集整理的过程中,一些归纳好的信息和大家分享一下。
首先借用有心人士的一张相当直观清晰的图来划分各种协议:
data/attachment/album/201109/28/39140_1317205996xv20.jpg

以下是上述协议的简单介绍。

BSD开源协议
BSD开源协议是一个给予使用者很大自由的协议。基本上使用者可以“为所欲为”,可以自由的使用、修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。
但“为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:
1. 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
2. 如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
3. 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。
BSD协议鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。

Apache License 2.0
Apache License是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和BSD类似:
1. 需要给代码的用户一份Apache License。
2. 如果你修改了代码,需要再被修改的文件中说明。
3. 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
4. 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache License。你可以在Notice中增加自己的许可,但不可以表现为对Apache License构成更改。
Apache License也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。

GPL
我们很熟悉的Linux就是采用了GPL、GPL协议和BSD, Apache License等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商业软件公司开发的免费软件了。
GPL协议的主要内容是只要在一个软件中使用(“使用”指类库引用,修改后的代码或者衍生代码)GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这就是所谓的“传染性”。GPL协议的产品作为一个单独的产品使用没有任何问题,还可以享受免费的优势。
由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。
其它细节如再发布的时候需要伴随GPL协议等和BSD/Apache等类似。

LGPL
LGPL是GPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的软件必须采用GPL协议不同。LGPL 允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。
但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。
GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品。

MIT
MIT是和BSD一样宽泛的许可协议,作者只想保留版权,而无任何其他了限制。也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的。

MPL
MPL是The Mozilla Public License的简写,是1998年初Netscape的 Mozilla小组为其开源软件项目设计的软件许可证。MPL许可证出现的最重要原因就是,Netscape公司认为GPL许可证没有很好地平衡开发者对源代码的需求和他们利用源代码获得的利益。同著名的GPL许可证和BSD许可证相比,MPL在许多权利与义务的约定方面与它们相同(因为都是符合OSIA 认定的开源软件许可证)。但是,相比而言MPL还有以下几个显著的不同之处:

◆ MPL虽然要求对于经MPL许可证发布的源代码的修改也要以MPL许可证的方式再许可出来,以保证其他人可以在MPL的条款下共享源代码。但是,在MPL 许可证中对“发布”的定义是“以源代码方式发布的文件”,这就意味着MPL允许一个企业在自己已有的源代码库上加一个接口,除了接口程序的源代码以MPL 许可证的形式对外许可外,源代码库中的源代码就可以不用MPL许可证的方式强制对外许可。这些,就为借鉴别人的源代码用做自己商业软件开发的行为留了一个豁口。
◆ MPL许可证第三条第7款中允许被许可人将经过MPL许可证获得的源代码同自己其他类型的代码混合得到自己的软件程序。
◆ 对软件专利的态度,MPL许可证不像GPL许可证那样明确表示反对软件专利,但是却明确要求源代码的提供者不能提供已经受专利保护的源代码(除非他本人是专利权人,并书面向公众免费许可这些源代码),也不能在将这些源代码以开放源代码许可证形式许可后再去申请与这些源代码有关的专利。
◆ 对源代码的定义
而在MPL(1.1版本)许可证中,对源代码的定义是:“源代码指的是对作品进行修改最优先择取的形式,它包括:所有模块的所有源程序,加上有关的接口的定义,加上控制可执行作品的安装和编译的‘原本’(原文为‘Script’),或者不是与初始源代码显著不同的源代码就是被源代码贡献者选择的从公共领域可以得到的程序代码。”
◆ MPL许可证第3条有专门的一款是关于对源代码修改进行描述的规定,就是要求所有再发布者都得有一个专门的文件就对源代码程序修改的时间和修改的方式有描述。
英文原文:http://www.mozilla.org/MPL/MPL-1.1.html
Chocore 2011年10月13日
CooCox将于下周发布CoIDE 1.3.1,除修复之前提过的部分BUG外,还将增加Semihosting等功能。

Ps:CoIDE中新唐库已升级到最新版,新唐组件也已更新。点击组件页右上角刷新按钮,有更新的组件右侧会显示Update,点击即可更新。

敬请关注CooCox——免费和开源的ARM Cortex M3&M0开发工具

下面是Semihosting学习笔记。

****************Quoted from http://forum.eepw.com.cn/thread/90669/1****************

1、ARM公司对Semihosting的中文解释是半主机机制。为什么叫半主机呢?主要是指应用程序的代码运行在目标系统上,当需要类似PC平台下的控制台输入输出时,会调用Semihosting去利用PC上的控制台输入输出设备:如打开关闭文件,PC显示器输出,键盘输入等等。

2、Semihosting在ADS1.2的开发环境下,只能在以下调试代理上运行,ARMulator, RealMonitor, Multi-ICE以及Angle。这就是为什么周工的EasyJTAG不支持Semihosting的原理,因为它不属于上述四种调试代理中的任何一种。

3、Semihosting是一段功能代码,这段功能代码主要运行在PC上,并由调试工具上的固件来激活调用。而周工的EasyJTAG没有实现这个激活调用功能。

4、对于开发用户来说,Semihosting是目标系统通过调用SWI
0x123456或 SWI 0xAB来调用的。前者ARM状态下的专用操作号,后者是THUMB状态的专用操作号。当开发者的软硬件调试工具配置正确时,可以正确执行Semihosting功能。打个比方说,你在ARMulator下仿真指令
MOV
R1, 0x18
SWI
0x123456
ARMulator会正确终止你的程序执行。
而在EasyJTAG下仿真时,却会跳入0x08的异常向量入口处。

**********Quoted from http://blog.sina.com.cn/s/blog_6bec9cbc0100mpp3.html***********

Semihosting主要是针对I/O操作的,在嵌入式开发过程当中,通过Semihosting,可以把输入输出定向到HOST上,利用HOST的输入和输出。

从用户的角度来看,printf好像和普通的一样,关键的区别在于printf的实现。一般的调试器都提供两个版本的IO库,一个式标准的库,另外一个是支持Semihosting的库。其实现有区别。下面以printf举例说明其原理:

支持Semihosting的printf的实现和标准的printf不同,支持Semihosting的printf用SWI指令来通知仿真器。仿真器在地址0x8处设置断点,但SWI指令执行后,仿真器可以捕获到该SWI指令。根据SWI的number来判断这个SWI是不是Semihosting请求,如果是,再根据具体的Semihosting number响应用户的Semihosting请求,完成用户的Semihosting请求后,返回到SWI的后面一条指令,继续执行。所以,对用户来说,这是透明的。

/**********
文档:《基于ARM的Semihosting的分析与实现》
Chocore 2011年10月14日
9月底,CooCox发布了CoX 2.0.0。

什么是CoX呢?CoX是基于ARM Cortex-M处理器的设备驱动统一接口。从下面这张图可以直观地看出使用CoX的好处——方便移植。
data/attachment/album/201110/14/39140_1318585965bAhT.jpg

另外,要使用CooCox提供的外围驱动,即Repository页DRIVER.COX标签下的组件,也需使用CoX。

CoX 1.0.0是2010年9月发布的,CooCox将它成功地移植到了多种MCU上,如LPC11xx, NUC1xx等等。

虽然CoX 1.0.0实现了外设的通用功能,但它还存在如下缺点:

w 不支持中断
w API功能不全面。只实现了一些通用功能,没有充分实现特殊专用芯片的功能。
w 未囊括所有外设。使用某些外设时,用户需要借助其他厂商库,从而增大代码量,甚至出现代码逻辑冲突。

鉴于此,我们重写了CoX。我们准备了将近一年的时间,每定义一个接口前都阅读并比较了数份芯片制造商手册。新版本的CoX不仅解决了上面提到的问题,并且添加了一些新功能。

CoX 2.0.0特征:

w 基于BSD协议,免费&开源
w 统一标准的外设接口(功能,中断……),包含强制和非强制接口,适用范围更广
w 满足不同MCU私有特性,实现各类外设全功能API
w 轻量级接口,无损CodeSize和Speed
w 丰富的Doxygen规范帮助文档,包含电路图

详情参见http://www.coocox.org/Cox.html

uzufk 2011年10月18日
看看这个是什么好东东!
Chocore 2011年10月29日
日前,CooCox发布了CoIDE V1.3.1。与1.3.0相比,1.3.1又有哪些进步呢?

1. 支持Semihosting功能
经过简单三步配置,调试时函数printf()可输出到Semihosting窗口,直观方便~

     1)在组件页勾选Semihosting,在调试配置窗口勾选Enable Semihosting
     2)在printf.c的Printchar函数中加入SH_SendChar(c);,包含头文件"semihosting.h”
     3)在需要的地方添加printf("Hello world!\n\r");,包含头文件

Ps: 大部分芯片配置如上所述,少数芯片如Atmel的SAM3U系列配置略有不同,可View Semihosting组件的例程查看说明。

2. 支持NUC122系列芯片,更新了Nuvoton NUC1xx,M051系列的厂商库组件和例子
CoIDE对芯唐的支持进一步加强。

3. CoX升级为新版本
继CooCox发布CoX 2.0版本后,基于CoX的组件也将逐步更新。可以看我前一篇帖子对CoX的介绍。

4. GCC编译器替换为CooCox重编译版本
如果说编译器是IDE的血液,那本次CoIDE可谓换血升级了。
随着CodeSourcery被收购,为避免版权纠纷,GCC版本的替换势在必行。CooCox重编译的GCC编译器经过测试,工作稳定可靠,用户可放心使用。

除此之外,新版CoIDE还修正了之前提到的Include Paths的BUG。下个月计划发布的版本将添加选择工程内参与编译文件的功能,敬请期待~

欲下载CoIDE或了解更多信息,请访问http://www.coocox.org/cn/CooCox_CoIDE.html
Chocore 2011年11月13日
管脚配置与代码自动生成工具CooCox CoSmart目前已升级到V1.2.0。

CoSmart V1.2.0增强
-----------------------------
增加:对一些没有引脚的外设如DMA,RCC等也支持配置功能
增加:支持NUC100,NUC120,NUC130,NUC140及M051系列的芯片
改善:支持保存引脚选择,模块配置为cos文件
改善:对耗时较长的操作,显示进度条
改善:切换芯片或者配置文件后,清空source窗口中显示的代码
改善:勾选外设过多时界面较卡的问题
更新:更新NUC1xx系列代码模板,与Nuvoton的1.05.002 版本的厂商库同步

CoSmart功能
--------------------
配置管脚复用设置
分析管脚配置冲突
指明I/O引脚特征
生成可用的C代码

未来CoSmart会逐步添加对ST、NXP等厂商芯片的支持,敬请关注~!
CoSmart更多信息见http://www.coocox.org/CN/CoSmart.html
Chocore 2011年11月21日
之前给大家介绍了CooCox历时一年的呕心沥血之作CoX。


今天要带来的好消息是CooCox在Github上创建了CoX仓库,您可以通过Git系统方便地得到CoX相关资源或为CoX的发展出力。CoX的Github主页:https://github.com/coocox/cox

什么是Github和Git
Github为使用Git版本控制系统的软件开发项目提供基于互联网的主机托管业务。
Git是由Github提供的快速、高效、分布式的版本控制系统,适用于软件协作开发。

与其他版本控制系统相比,Git的优势:
1.  直接记录快照,而非差异比较,十分方便分支及合并
2.  近乎所有操作都是本地执行,无网络也能提交更新,处理速度飞快3.  时刻保持数据完整性4.  多数操作仅添加数据,一旦提交快照后就不用担心数据丢失
如何贡献?
CooCox使用集成管理员工具流模式进行开发。
由于 Git 允许使用多个远程仓库,开发者便可以建立自己的公共仓库,往里面写数据并共享给他人,而同时又可以从别人的仓库中提取他们的更新过来。这种情形通常都会有个代表着官方发布的项目仓库(blessed repository),开发者们由此仓库克隆出一个自己的公共仓库(developer public),然后将自己的提交推送上去,请求官方仓库的维护者拉取更新合并到主项目。维护者在自己的本地也有个克隆仓库(integration manager),他可以将你的公共仓库作为远程仓库添加进来,经过测试无误后合并到主干分支,然后再推送到官方仓库。工作流程如下图:
51005
[*]项目维护者可以推送数据到公共仓库 blessed repository。 2. 贡献者克隆此仓库,修订或编写新代码。[*]贡献者推送数据到自己的公共仓库 developer public。 4. 贡献者给维护者发送邮件,请求拉取自己的最新修订。 [*]维护者在自己本地的 integration manger 仓库中,将贡献者的仓库加为远程仓库,合并更新并做测试。 [*]维护者将合并后的更新推送到主仓库 blessed repository。
详情请参见http://www.coocox.org/cox/Cox_Github.html
补充:《Git中文帮助文档》
Chocore 2011年11月24日
编程时还在随时随地开着User Manual文档吗?你out啦!
查个寄存器,还得在一份几百页的手册中前找后找,累不累啊?难得今天感恩节,从现在开始,给自己辛苦操劳的眼睛也减减负吧~

CooCox CoAssistant是一款简单实用的寄存器助手,专为进行ARM Cortex M3和M0开发的嵌入式软硬件工程师设计。

推荐理由:
1. 免费辅助工具
CooCox家的系列工具都是免费的(部分工具开源),这个就不多说了。初次听说的筒子可以查看我以前的帖子或访问CooCox官网自行了解。

2. 有CoIDE集成版和在线版,双重选择
在CoIDE中选择View > Peripherals 即可打开寄存器助手。
助手详细介绍及在线版入口,见http://www.coocox.org/CN/CoAssistant.htm

3. 直观的呈现寄存器细节信息
通过助手,你可以方便地获取这些信息:
芯片所有寄存器组,寄存器组基地址及描述,寄存器组所有寄存器,单个寄存器的描述信息、访问类型、偏移值、复位值,及各位域的详细信息。

单步调试时,值有变化的寄存器还会以醒目的红色显示。
51242

4. 支持多种方式修改寄存器值,且修改的值在硬件上实时反应
1)修改寄存器的二进制或十六进制值,各位域值也将快速对应转换。
例如在调试暂停时,我修改GPIOC_ODR的值0x00000240为0x00000200,反应到硬件上PC6的LED灯熄灭,PC9的LED灯仍亮。
51243

2)对有枚举类型的位域,可以通过单击位域or通过位域选项的下拉框,选择该位域的值
51244



CoAssistant目前支持Nuvoton,Energy Micro,和NXP的大部分芯片,下一版本的CoIDE还将添加对STM32F100系列及LPC11C1x系列芯片的支持,敬请关注~

观望百次不如动手一试,你还在犹豫什么呢?
chinajiagege 2011年11月24日
好东西就要支持下哈。
Chocore 2011年12月05日
感恩节给大家介绍了寄存器助手CooCox CoAssistant。


今天要带来的好消息是——CoAssitant日前更新了Nuvoton的NUC1xx系列寄存器数据,并添加了对STM32F10x系列芯片的支持。

查看CoAssistant目前支持的芯片 或 使用在线版CoAssitant
请访问:http://www.coocox.org/CN/CoAssistant.htm
jixzang 2011年12月07日
谢谢楼主分享。
Chocore 2011年12月10日
CooCox于本周发布了CoFlash V1.4.0。

新版CoFlash添加了对新唐Mini51系列及NUC122系列芯片的支持,具体有:
Mini51LAN, Mini51ZAN, Mini52LAN, Mini52ZAN, Mini54LAN, Mini54ZAN
NUC122LC1AN, NUC122LD2AN, NUC122SC1AN, NUC122SD2AN, NUC122ZC1AN, NUC122ZD2AN

此外,本次发布的CoFlash还进一步改善了Flash烧写速度,添加了复位模式选择功能,欢迎体验~

从双十二开始,新唐 NuMicro Mini51 技术巡回研讨会将陆续于全国十个城市举办。会上将赠送CooCox工具组特别制作的光盘和彩页,CoFans&新唐用户都不可错过哦~活动介绍见http://www.nuvoton.com/nuvotonMOSS/event/Mini51/Microsite.aspx。

欲了解CooCox更多信息及动态,请访问http://www.coocox.org/CN/。
Chocore 2012年01月04日
与CoFlash V1.4.0同时发布的还有MDK调试插件CoMDKPlugin V1.4.0。

新设备支持方面CoMDKPlugin与CoFlash同步,均添加了对如下芯片的支持:
Mini51LAN, Mini51ZAN, Mini52LAN, Mini52ZAN, Mini54LAN, Mini54ZAN
NUC122LC1AN, NUC122LD2AN, NUC122SC1AN, NUC122SD2AN, NUC122ZC1AN, NUC122ZD2AN

CoLinkEx方面,不仅提升了Flash烧写速度,还新增支持在MDK中的trace功能。

从12月起,所有新版的CooCox软件,支持下载和调试功能的,都要求CoLinkEx使用新版本的固件和驱动了。
新版的固件和驱动的下载页面:http://www.coocox.com/CN/Colinkex.htm

固件更新方法如下:
1.  短接JP1。
2. 上电(ColinkEX连接到PC)。
3. 等待PC枚举出卷标为"CRP2 ENABLD"的可移动磁盘,如果没有出现,请多按几次复位键(BP1)或重新上电。
4. 把CRP2 DISABLD可移动磁盘中的firmware.bin删除。
5. 把下载好的CoLinkEx固件复制到此可移动磁盘中。
6. 断开JP1,重新上电后即可使用

推荐的驱动更新方法如下:
1. 根据使用的Windows系统的版本下载驱动
2. 卸载旧驱动
3. 连上固件更新后的CoLinkEx
4. 安装新版驱动。

CoLinkEx安装好后,设备管理器中可以看到CoLinkEx Debug Interface,USB Composite device和一个CooCox 虚拟串口。
Chocore 2012年01月13日
之前给大家介绍过CooCox专注打造的CoX库&驱动(见前面的【再上层楼】CooCox优化了CoX——基于ARM Cortex-M处理器的设备驱动统一接口)。


除了GitHub开源项目,正在筹备中的组件平台也是CooCox提供给开发者的又一大参与渠道。CooCox希望能通过组件平台简化开发流程,方便更多开发者的加入。

目前CoX开发的主力还是CooCox工程师。上周,基于NUC122系列的CoX外设库已经实现。

在CoIDE中刷新NUC122的组件页,PERIPHERAL.COX分支即为NUC122的通用外设驱动,勾选即可用。
56800

用户还可以从http://www.coocox.org/COX.html获取免费驱动源码及配套文档。
------------------
如果您有任何CooCox工具相关问题和建议,欢迎到论坛或QQ群提(CooCox工具群167693982,CooCox_CoOS群77814606),在线答疑时间为周一到周五8:30~18:00。
【论坛近期FAQ】
CoIDE如何输出浮点数
CoIDE如何设置heap size
yang_gh 2012年01月30日
用用看先
Chocore 2012年03月18日
CooCox论坛上时不时有人问:CoIDE是否支持C++?

CoIDE默认支持C语言,工程中的*.cpp或*.C(大写的C,会默认为cpp文件)不参与编译。这让不少惯用C++的用户觉得可惜。

好在这个世界上解决问题的方法永远比问题多得多,感谢用户Yury Kuchura的贡献和分享,现在只需要几处改动,CoIDE中就能使用C++了。步骤如下:

1. 修改build.xml文件,使*.cpp文件能被编译





2. 修改link.ld文件,使连接时C++所需的段能被识别
/* Section Definitions */
SECTIONS
{
    .text :
    {
        KEEP(*(.isr_vector .isr_vector.*))
        *(.text .text.* .gnu.linkonce.t.*)        
        *(.glue_7t) *(.glue_7)                  
        *(.rodata .rodata* .gnu.linkonce.r.*)
        
        /* C++ Static constructors/destructors (eabi) */
  . = ALIGN(4);
  KEEP(*(.init))
  
  . = ALIGN(4);
  __preinit_array_start = .;
  KEEP (*(.preinit_array))
  __preinit_array_end = .;
  
  . = ALIGN(4);
  __init_array_start = .;
  KEEP (*(SORT(.init_array.*)))
  KEEP (*(.init_array))
  __init_array_end = .;
  
  . = ALIGN(4);
  KEEP(*(.fini))
  
  . = ALIGN(4);
  __fini_array_start = .;
  KEEP (*(.fini_array))
  KEEP (*(SORT(.fini_array.*)))
  __fini_array_end = .;
  
  /* C++ Static constructors/destructors (elf) */
  . = ALIGN(4);
  _ctor_start = .;
  KEEP (*crtbegin.o(.ctors))
  KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
  KEEP (*(SORT(.ctors.*)))
  KEEP (*crtend.o(.ctors))
  _ctor_end = .;
  
  . = ALIGN(4);
  KEEP (*crtbegin.o(.dtors))
  KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
  KEEP (*(SORT(.dtors.*)))
  KEEP (*crtend.o(.dtors))                        
    } > rom
   
    .ARM.extab :
    {
        *(.ARM.extab* .gnu.linkonce.armextab.*)
} > rom


    /* stack section */
    .co_stack (NOLOAD):
    {
        . = ALIGN(8);
        *(.co_stack .co_stack.*)
    } > ram
   
    __exidx_start = .;
    .ARM.exidx :
    {
        *(.ARM.exidx* .gnu.linkonce.armexidx.*)
    } > rom
    __exidx_end = .;
   
      
    . = ALIGN(4);
    _end = . ;
}
3. 修改启动代码,使构造和析构函数能被正确调用

extern unsigned long __preinit_array_start;
extern unsigned long __preinit_array_end;
extern unsigned long __init_array_start;
extern unsigned long __init_array_end;
extern unsigned long _ctor_start;
extern unsigned long _ctor_end;
static void call_constructors(unsigned long *start, unsigned long *end) __attribute__((noinline));
static void call_constructors(unsigned long *start, unsigned long *end)
{
  unsigned long *i;
  void (*funcptr)();
  for ( i = start; i < end; i++)
  {
    funcptr=(void (*)())(*i);
    funcptr();
  }
}

void Default_Reset_Handler(void)
{

  /* Setup the microcontroller system. */
  SystemInit();
   
  //Initialize CoOS (in order the new/delete operators to work properly
  //prior to calling constructors). Comment it out if you don't use CoOS!
  CoInitOS();
  //Call C++ global constructors
  call_constructors(&__preinit_array_start, &__preinit_array_end);
  call_constructors(&__init_array_start, &__init_array_end);
  call_constructors(&_ctor_start, &_ctor_end);
  /* Call the application's entry point.*/
  main();
}

4. 在组件页勾选C Library和Retarget printf,之后注释掉printf.c文件中的如下语句,以避免重定义_impure_ptr
struct _reent *_impure_ptr = &r;

5. 在工程配置(Project configuration)中添加Linked Libraries libstdc++和libsupc++,它们可以从GCC tool chain的库中找到


来源:
http://www.coocox.org/Forum/topic.php?id=730
http://www.coocox.org/Forum/topic.php?id=873

例程:69980
STM32103vb + CoIDE 1.3.1 + 闪灯
说明——因CoIDE 1.4.0存在bug“修改build.xml文件后无法保存”,故使用CoIDE 1.3.1版本。此bug在新版CoIDE中将被修复。

欢迎大家常来CooCox论坛交流讨论~
zhengtiantong 2012年03月30日
:victory:很好,很强大
100home 2012年04月02日
及时雨
Chocore 2012年04月10日
Cortex M4芯片上市以来,论坛上用户要求CooCox支持M4的呼声一直很高。经过一段时间的奋战,在本月最欢乐的日子,CooCox发布了CoIDE 1.4.1版本,满足了用户的这一需求^_^

为了尽早支持M4,新版CoIDE没有移植厂商库,所以在勾选包含启动代码(startup code)的CMSIS BOOT和专用于M4的CMSIS core之后,用户还需手动从厂商库添加需要的外设组件。

之后CooCox会逐步添加STM32F4的Peripheral components(外设组件)到Repository View,并添加其他的M4的芯片。目前STM32F4以外的M4芯片用户可以选择ARM (Manufacturers) ---> M4 (Chips)进行开发。
72722

M4芯片的FPU配置
编译M4前,需选择合适的FPU。工程配置(Project ---> configuration)中提供了三种选择:无FPU,soft FPU ,hard FPU。默认配置为soft FPU。

选择使用FPU后,还需在程序中使能FPU模块,否则程序运行时会进入hardfault错误。
将如下代码添加到启动代码(如startup_stm32f4xx.c)的Default_Reset_Handler()函数中,main();之前,使能FPU:
*((volatile unsigned long *) 0xE000ED88) |= (0xF << 20);
或者
__asm(" LDR.W R0, =0xE000ED88\n"
" LDR R1, \n"
" ORR R1, R1, #(0xF << 20)\n"
" STR R1, ");

除M4外,CoIDE 1.4.1新增的另一大亮点是对ARM GCC的支持。
ARM GCC是ARM官方新近推出的GCC编译器,功能强大,推荐用户使用。
编译器设置方法:http://www.coocox.org/cn/CoIDE/Compiler_Settings.html

Colink和CoLinkEx调试器已支持STM32F4系列芯片,支持M4的CoFlash和MDK插件也即将发布,敬请关注~


欢迎到CooCox论坛反馈&围观学习(注意活用右侧搜索栏):http://www.coocox.org/Forum/topic.php?id=756
james_138139 2012年08月09日
尽管用不到,还是要支持以下
lsx435372 2012年10月10日
看这样不错啊
jixzang 2012年10月23日
不错,谢谢楼主
caipeng521 2012年12月07日
:)
guluguluchui 2012年12月07日
Coos 很好用 ,頂
UltraBird 2012年12月11日
不懂
david-xia 2013年01月06日
顶。。。。。。。。。。。。。。
taxuelangzi110 2013年01月09日
标记一个,呵呵。。
loikey 2013年01月11日
感觉很好用,试试看
yxd201971 2013年01月17日
了解一下
jh_wang 2014年09月12日
路过 看看