123
返回列表 发新帖
楼主: Chocore

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

[复制链接]
 楼主| 发表于 2012-1-4 18:09:11 | 显示全部楼层

【MDK调试插件】CoMDKPlugin已更新至V1.4.0,CoLinkEx固件及驱动需升级

CoFlash V1.4.0同时发布的还有MDK调试插件CoMDKPlugin V1.4.0

新设备支持方面CoMDKPluginCoFlash同步,均添加了对如下芯片的支持:
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 InterfaceUSB Composite device和一个CooCox 虚拟串口。
 楼主| 发表于 2012-1-13 14:56:26 | 显示全部楼层

【免费驱动源码】CooCox已实现NUC122外设库

之前给大家介绍过CooCox专注打造的CoX&驱动(见前面的【再上层楼】CooCox优化了CoX——基于ARM Cortex-M处理器的设备驱动统一接口)。


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

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

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

用户还可以从http://www.coocox.org/COX.html获取免费驱动源码及配套文档。
------------------
如果您有任何CooCox工具相关问题和建议,欢迎到论坛或QQ群提(CooCox工具群167693982CooCox_CoOS77814606),在线答疑时间为周一到周五8:30~18:00
【论坛近期FAQ
CoIDE如何输出浮点数
CoIDE如何设置heap size
发表于 2012-1-30 15:50:32 | 显示全部楼层
用用看先
 楼主| 发表于 2012-3-18 22:57:35 | 显示全部楼层

【FAQ】如何在CoIDE中使用C++

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 LibraryRetarget 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

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

欢迎大家常来CooCox论坛交流讨论~
发表于 2012-3-30 19:38:09 | 显示全部楼层
很好,很强大
发表于 2012-4-2 22:26:28 | 显示全部楼层
及时雨
 楼主| 发表于 2012-4-10 10:14:35 | 显示全部楼层

【与时俱进】CoIDE 1.4.1支持Cortex M4和ARM GCC啦

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)进行开发。
STM32F4.JPG

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, [R0]\n"
" ORR R1, R1, #(0xF << 20)\n"
" STR R1, [R0]");

除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
发表于 2012-8-9 21:46:13 | 显示全部楼层
尽管用不到,还是要支持以下
发表于 2012-10-10 18:20:09 | 显示全部楼层
看这样不错啊
发表于 2012-10-23 14:41:12 | 显示全部楼层
不错,谢谢楼主
发表于 2012-12-7 07:56:41 | 显示全部楼层
发表于 2012-12-7 21:23:17 | 显示全部楼层
Coos 很好用 ,頂
发表于 2012-12-11 23:50:29 | 显示全部楼层
不懂
发表于 2013-1-9 19:09:46 | 显示全部楼层
标记一个,呵呵。。
发表于 2013-1-11 16:19:47 | 显示全部楼层
感觉很好用,试试看
发表于 2013-1-6 09:42:18 | 显示全部楼层
顶。。。。。。。。。。。。。。
发表于 2013-1-17 10:48:28 | 显示全部楼层
了解一下
发表于 2014-9-12 08:33:20 | 显示全部楼层
路过 看看
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表