ICP 的意思是 "在电路编程"(in Circuit Programming),PC 电脑可以运行 “NuMicro ICP Programming Tool”软件通过 Nu-Link 的 SWD 接口(serial wire debug) 去更新目标板上的 APROM, LDROM, Data Flash 和用户配置字。
ISP 的意思是“在系统编程”(In System Programming),目标板通过运行 LDROM 里的启动/加载代码调用外部的接口,如 USB/UART/SPI/I2C... 去更新内部的 APROM, DataFlash 和 用户配置字。

你可以参考论坛里NuMicro_ISP_Tool_Source_Code,v1.42 使用ISP 实现用USB对板子的固件进行升级。

ICP是自己CPU不跑,通过别的工具对JTAG状态机去烧录。ISP是自己CPU跑,通过接口自己下载自己烧录。

 

芯唐的单片机出厂不带BOOTLOADER(即启动/加载代码)的,需要用户自己用ICP方式或者专用编程器烧写到LDROM里的(代码厂家有提供的),很不方便;另外,使用ICP烧写程序还会把客户原先存储在EEPROM(用FLASH模拟共享的)里的参数也一并檫除掉的,这点需要特别注意。如果客户对所存储的参数不是很在意的话,那用ICP也是很方便的。不过我选择芯唐的单片机后,又放弃了,主要就是出厂不带ISP,而用ICP又会檫除我存的参数。

  ISP

  采用 ISP 下载,芯片必须处于可执行程序的状态 (除了上电, 还要接 XTAL),且必须预烧ISP-code 在 LDROM  里面,也就是内部必须先烧好类似 Bootloader  的程序,然后内部运行的程序可以在 USB 口或 UART 口接收来自 PC 的通信协议并进行烧写动作。而 ISP-Code 必须通过 ICP 烧录器进行下载
  ISP 烧录范围只限于 APROM,DataFlash 或 CONFIG。芯片在 LOCK 的状态下,仍然可以只更新某一区块 (APROM, DataFlash 或 CONFIG)。
ISP 下载工具是个绿色软件,不需要安装。

  ICP

  芯片只要处于上电状态即可,不必预烧任何 code 在芯片里面。烧录范围涵盖整颗 MCU,包括 APROM, DataFlash,CONFIG,LDROM 和 ROMMAP
芯片在 LOCK 的状态下, 无法只更新某一区块, 只能在 Erase-ALL 之后, 更新某一区块, 再逐一烧回其它区块,这是因为 ICP  的本质就是走 “串行接口的 Writer Mode ” , 芯片被 LOCK之后,除了 erase-ALL ,所有烧录动作皆会被禁止。
所以 ICP  下载需要 ICP  下载器,Nu-Link  仿真器可以作为 ICP  下载器使用。

新唐的icp和isp的更多相关文章

  1. 新唐M0 ISP下载要点

    http://blog.csdn.net/rejoice818/article/details/7736029 一.注意:官方光盘内“Software Utilities”目录下,可找到ICP或ISP ...

  2. 从51跳新唐cortex-m0学习1——思想转变

    Cortex-M0学习第一帖 序言:这里先说一下,大家在看帖子时候,可能看见字数比较多的,可能只是先大概浏览一下,之后从中挑几段大概瞅瞅,但是我要说,如果你碰到一个适合的帖子,请仔细品读,这是我在论坛 ...

  3. 新唐M0特点分析

    1,价格低,05x系列0.6-1.5美金,1xx系列1.5-3.5美金:2,性能好,最新32位CORTEX-M0的ARM核,唯一可工作到+5.5V的CORTEX-M0:3,速度快,CPU核能跑到50M ...

  4. 新唐Cortex-M0微控制器的省电管理

    新唐科技的NUC1xx包含NUC101.NUC100.NUC120.NUC130和NUC140,是以ARM Cortex-M0为核心的32位微控制器(MCU),经由不同时钟的设定,最高可以达到 50M ...

  5. 新唐ARM9之NUC972学习历程之系统的搭建和BSP包的使用

    说到嵌入式,我们首先想到的,就是它的复杂程度,LINUX,BSP,UBOOT,交叉编译,寄存器配置,等等一系列的问题,甚至有的时候我们对此一头雾水,很是头疼,不过我们今天要说的就是关于NUC972的一 ...

  6. 基于MDK的ARM-GCC开发环境建立及新唐M0的HID类设备的C++开发

    一,下载安装测试arm-none-eabi-gcc编译工具链 1,查看arm-none-eabi-gcc编译工具版本        打开网页:https://sourcery.mentor.com/G ...

  7. 从51跳新唐cortex学习3——细说新唐两种定时器

    的定时器我们已经是相当熟悉啦.但是,对于第一次接触新唐,第一次接触cortex的定时器一样,都是加1计数,但是功能和容量变大了),包括4个32位定时器(里面放24位的数据),还有分频功能.TMER0到 ...

  8. 新唐N32905U1DN开发教程:MDK环境下工程搭建(官方提供的固件库)(转)

    前言:新唐N32905U1DN单片机不支持用户将程序烧录到内部FLASH,必须外挂FLASH存储用户程序,可以是SPI FLASH.NAND FLASH.SD卡.用户采用裸机开发的方式可使用官方提供的 ...

  9. 新唐的开发环境的搭建,驱动以及BSP

    https://www.keil.com/demo/eval/arm.htm#DOWNLOAD1,MDK-ARM的IDE集成开发环境:mdk512.exehttp://www.keil.com/fid ...

随机推荐

  1. LeetCode_sqrt(x)

    class Solution { public: int sqrt(int x) { // Start typing your C/C++ solution below // DO NOT write ...

  2. Linq to OBJECT延时标准查询操作符

    1.Where 操作符用于限定输入集合中的元素,将符合条件的元素组织声称一个序列结果.2.Select  操作符用于根据输入序列中的元素创建相应的输出序列中的元素,输出序列中的元素类型可以与输入序列中 ...

  3. WCF的执行过程

    既然是实现互通信.那么肯定会有概念意义上的服务端Server  和概念意义上的客户端 Client,在这里,我所说明的都是概念意义上的,单独强调此,是因为,基于WCF的通信没有物理上的划分,但是概念上 ...

  4. Eclipse中安装TestNG插件

    在Eclipse中安装TestNG也像安装其他插件一样非常方便,如下: 选择菜单:Help->Install New Software,然后在弹出窗口中的“Work with”中输入地址: ht ...

  5. 减少leftJoin的使用 (转)

    作为开发,你是否经常碰到下面需要转换用户ID成用户名称的情况: 可惜你的这些业务表出于最少冗余设计要求,只有UserId,而没有UserName,这时你不得不破坏你一个类封装一个表的美好想法, 在你的 ...

  6. C++基础回顾1(数据类型, 控制语句, 数组)

    最近两天打开本科学校的C++教材,快速回顾了一下C++方面的内容.虽然书本内容比较基础,但是还是有些知识点值得自己强化记忆.分几篇文章,加上自己的理解记录如下. 先回顾面向过程的部分. C++数据类型 ...

  7. 前端开发利器—FIDDLER 转

    http://www.cnblogs.com/yuzhongwusan/archive/2012/07/20/2601306.html 前端开发利器—FIDDLER 1.Fiddler相对其他调试工具 ...

  8. Bootstrap--本地安装使用

    1.到官网下载:http://v2.bootcss.com 2.下载后是一个压缩文件,把它放在相应的工作目录下,然后解压. 3.新建一个测试文件,然后导入两个文件.

  9. leetcode_question_57 Insert Interval

    Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessa ...

  10. Hadoop动态加入/删除节点(datanode和tacktracker)

    大体,正确的做法是首选的配置文件,然后开始详细机对应的进程/停止操作. 网上一些资料说在调整配置文件的时候,优先使用主机名而不是IP进行配置. 总的来说加入/删除DataNode和TaskTracke ...