从51跳新唐cortex-m0学习1——思想转变
Cortex-M0学习第一帖
序言:这里先说一下,大家在看帖子时候,可能看见字数比较多的,可能只是先大概浏览一下,之后从中挑几段大概瞅瞅,但是我要说,如果你碰到一个适合的帖子,请仔细品读,这是我在论坛里最受用的东西。现在先大概介绍一下这篇帖子,以供大家浏览有个主次。帖子前面主要介绍一个cortex新手是如何开始学习板子的,里面可能有些东西并不一定准确,但都是我的一些经验,但是里面引证的几篇文章真的对学习新唐是很有帮助的。自己在学习时也是参考了许多帖子,下载了许多资源,但是其中有一部分对于我们来说可能有些弯路,但是本文所引证的几篇都是比较权威又经过我自己亲自试验过的,可信度还是杠杠的。后面说了一下自己对新唐内核的理解(之前是没有在网上见到的),就是不知道对不对,还请大家指点。
正文
,除了前段时间有幸见识了一下STM32的大概情况外,基本上是没有接触过CORTEX-M内核的,看到鄙人有多菜啦吧,呵呵。所以这里有幸32位机的“破处”交给了二姨家的菜农大哥,哈哈(我是男的)。所以一开始从51上的思路转到cortex上有很大得不适应,尤其是在内核、编程思路、程序下载方式等上,和前辈的差距不是一点,这也是为什么从收到板子到现在才开第一帖的原因。但是,虽然,这次新的学习很费周折,但是,我想和我一样的人还不止少数的,所以我的“51跳cortex”的经验还是对我们这些大菜鸟还是很有用处的,现就我这几天的问题和心得汇报如下,希望可以给和我一样的菜们解惑,不对的地方还请大侠们批评指正。(这里还要感谢一下菜农大哥,不论是开始取板子,还是后来看菜农的讲义,都让我受益匪浅啊,让我认识到了高手就是高手,不论是从人品还是技术上,我现在已经是对菜农佩服的五体投地啦,哈哈——怎么这么像毕业答辩时的致谢啊,哈哈)言归正传,说下我自己对整个芯唐cortex的认识:
根232串口线(基本用不到,本人用的笔记本,上面没有串口,所以自备一根U转串线),开发板一块(主板),nulink板一块(刚开始以为是仿真器,后来用了以后才发现是个下载器,呵呵)。2.看芯片的手册,了解下芯片里面都有哪些资源,这些资源以后都可以用在哪些方面,手册现在不用细看,太多,先对芯片有个大体的认识很重要(就和我之前看os一样)。3.之后要学如何往板子里下载程序,这个是学习和应用一个板子最基础的。不要小看了这个步骤,51菜们,cortex的下载方式和之前的任何一款51都是不一样的,也和STM32有所差别,所以,研究透如何下载程序,对理解芯唐,理解cortex是很重要的,不可忽视。我也是刚刚到这一步,呵呵。4.之后就要开始软件啦。我大概看了下,cortex的软件的思路就和在51上引用框架、os有点像,其是有自己的函数库的,所以,进行软件时,函数库的清楚还是很重要的。5.等这些都熟悉了,剩下的东西就要留给开发者自己啦,往上面加外围设备,自己调试驱动,在上面跑OS等等。
,keil uVision4 (主要用于程序调试)。,NuMicro ISP Programming Tool(主要用于ISP下载),NuMicro ICP Programming Tool(主要用于ICP下载),菜农大哥的HotISP2.55(我用的是这个版本,之前下了个HotISPV280B版的,但是按照大哥的讲义没有调出来,可能是版本太高啦吧,所以就换了版本),nulink for keil(这个貌似是个驱动,但是现在还不知道有什么用,难道是识别NULINK的?)
三、有了软件,就要跟着教程进行程序下载的调试啦。那么教程看谁的呢,这里建议 新手园地 的帖子教程大家可以学习,多看,确实很有好处,但是如果自己按步就班进行软件下载的学习,那么久不得不看 菜农群课笔记 里的标准教程啦。
这里推荐帖子 《 菜农群课笔记之ICP与ISP》这个帖子必须仔细研读 里面的话仔细想想更有助于理解cortex的芯片内容,像“要将清楚引导程序和运用程序的区别”,“ 在上电启动时,通过某种接口和协议与PC通讯,完成对FLASH的烧录”,“ 新唐的实际也是一样的,不同的是必须你将这个 ISP固件想办法先放进去”。
在这里要说几个我认为相当有用的帖子,有了这些你就完全可以自己掌握下载方式啦
1,《 菜农群课笔记之ICP与ISP》http://bbs.21ic.com/frame.php?fr ... om/iclist-78-1.html
2,《各种方式烧程序到开发板》http://bbs.21ic.com/icview-284406-1-1.html但是里面作者说“要在松开RST后过一会按下connect”这儿我倒是没有发现 呵呵 接下来还有待考证。
3,《HOT大叔助学简易Nu-Link ---- 离线烧写试验》http://bbs.21ic.com/icview-234806-1-1.html
四、下面我认为有必要说一下ICP和ISP,以及LDROM,APROM,FLASH,这个我想了好久。可能是因为以前没有接触过这些吧。
下程序时,会看到软件上分别有三个源程序地址窗口,分别是LDROM,APROM以及DATA,刚一开始会迷茫到底有什么不一样。注意:LDROM是管理区,APROM是用户区,在管理区LDROM中,我们一般情况下放“引子程序”(我姑且这样叫它),说白了他就是一些驱动程序。我们平时往所有的芯片之中下载程序时,并不是直接将二进制码写到硬件上的——即直接用0,1控制某个里面微小器件的通断,而是有驱动(也就是协议)识别出来你的二进制码,他去控制微小器件的通断。大家玩51也是一样,51里面也是有引子程序的,只不过他的引子程序是直接固化到51单片机里面了,我们在下载程序时,它里面的引子程序自动进行与PC的通讯、信息的识别。但是新唐的芯片并没有将引子程序固化在芯片里面(这也就给了我们一个可以开发的机会),所以如果我们要将新唐的芯片当做以前我们所熟悉的51来下载的话,那就得先将引子程序写到新唐芯片的LDROM中,之后,我们要下载自己的用户程序就下载到APROM之中就可以啦,这下就与我们以前那种ISP下载一样了。这里将引子程序写进新唐芯片就得依靠ICP下载了,其中就要用到我们的那块小电路板nulink。至于怎么下载,群课里讲得是十分详细的,只要自己从头到尾仔仔细细看一遍,相信很容易掌握的。总结一下就是:先用ICP下载引子程序(引子程序论坛里提供了,要不就是那会的HotISPV280B软件中路径为……\HotISPV280B\HotISP\isp\nuvoton\bin下的ISP_LD_NUC1xx_CODE.bin文件)到芯片的LDROM区,再用ISP下载用户程序到芯片的APROM区。
其实上面说的这种ICP+ISP下载方式只是新唐几种下载方式中的一种,读者完全可以不选择这种下载方式,直接使用ICP方式将用户程序烧写到APROM区去运行(这种方式比较简单,而且也很方便,尤其是对于开发出的产品之后的规模性下载),但是我感觉学一下ICP+ISP下载方式能让我们更好得理解新唐的芯片,有助于我们将新唐的cortex与我们所熟悉的51芯片相联系起来,所以,学习一下ICP+ISP还是很有必要的。还有就是大家学了这么多下程序下载方法,希望大家关注一下NULINK的离线下载和USBISP下载。前者是方便于与PC机分离时的芯片程序下载,而且也可以只用一根线烧写,再手动下到板子上,很方便的。而后者是方便于我们这些只有本本同学,机子上面木有串口,这种方法很方便的 ,嘻嘻。
nu-link 是下载器,也是仿真器啊。
nulink for keil是一个驱动,让keil驱动nu-link进行仿真用的。
这是当时自吹用的,虽然有点黄婆卖瓜的嫌疑,也算符合事实。兄弟们如觉得胃部不适,海涵了
http://www.nuvoton-m0.com/forum.php?mod=viewthread&tid=371&extra=page%3D1
咱毫不怀疑的相信,咱的仿真器,在支持Cortex M0芯片上,是全球领先的 ----
极其低廉的价格,很多高端仿真器都不具备的flash断点功能、半主机调试功能,
完整的在线烧写功能、脱机加密烧写功能。
这就是Nu-Link。
-----------------------------------------------------------------------------------------------------------------------------
Nu-Link不仅是仿真器,还是在线下载器、脱机下载器,是一个从研发到量产都适用的3合1的工具
作为仿真器功能:
◆支持多种IDE环境
KEIL 3, Keil4
IAR EWARM 5.41 ~ 6.21,多个IAR版本共用同一个驱动dll (Nu-Link_IAR.dll)
Coocox (gcc环境)
新唐官方支持,随时保持对最新IDE的维护
◆ 支持Flash断点,不论代码在RAM或ROM里,都可以无限制使用断点,不受Cortex芯片断点数量的限制
(普通不支持Flash断点的仿真器,对于Cortex M0芯片,只能使用4个断点)
◆ 支持基于ARM Cortex-M0设备的串行调试(SWD)
◆ 支持半主机模式(Semihosting),
在调试版没有串口的情况下,仍旧可以借用IDE的终端窗口进行输入输出,方便用户调试。
◆ 支持新唐全系列Cortex M0芯片,通过IDE环境,支持M0之芯片设定、flash烧写程序、设备寄存器定义等。
作为在线下载器功能:
◆ 在线下载模式,借助电脑,完成片上程序升级及更新(In-Circuit Program功能)
◆ 便捷性:支持批量下载模式,可自动侦测新的目标板插入并烧写。
作为脱机下载器功能:
◆ 脱机下载模式,先通过电脑,将要下载的数据写入Nu-Link中。
然后不需电脑,就可作为独立的下载器,完成片上程序升级及更新(In-Circuit Program功能)
◆ 可设定最大下载次数。达到指定次数,保存在Nu-Link的数据,将自动销毁。
◆ 高安全性:在下载器中的数据加密保存,复制无效。
◆ 高安全性:脱机下载时,下载器和目标芯片的连接pin上的波形,通过随机数加密,可防窃听烧写数据。
◆ 便捷性:支持批量下载模式,可自动侦测新的目标板插入并烧写。
其他
◆ 使用USB HID,免安装驱动, 标准Windows即插即用
从51跳新唐cortex-m0学习1——思想转变的更多相关文章
- 从51跳新唐cortex学习3——细说新唐两种定时器
的定时器我们已经是相当熟悉啦.但是,对于第一次接触新唐,第一次接触cortex的定时器一样,都是加1计数,但是功能和容量变大了),包括4个32位定时器(里面放24位的数据),还有分频功能.TMER0到 ...
- 新唐M0 M4系统初始化
系统初始化包含了时钟(clock)初始化和多功能引脚(Multi Function Pin 简称MFP寄存器)配置.void SYS_Init(void) { /* 解锁保护寄存器 */ SYS_Un ...
- 新唐的开发环境的搭建,驱动以及BSP
https://www.keil.com/demo/eval/arm.htm#DOWNLOAD1,MDK-ARM的IDE集成开发环境:mdk512.exehttp://www.keil.com/fid ...
- 从51跳cortex-m0学习2——程序详解
跳cortex-m0——思想转变>之后又一入门级文章,在此不敢请老鸟们过目.不过要是老鸟们低头瞅了一眼,发现错误,还请教育之,那更是感激不尽.与Cortex在某些操作方式上的异同,让自己对Cor ...
- 新唐M0特点分析
1,价格低,05x系列0.6-1.5美金,1xx系列1.5-3.5美金:2,性能好,最新32位CORTEX-M0的ARM核,唯一可工作到+5.5V的CORTEX-M0:3,速度快,CPU核能跑到50M ...
- 新唐M0 ISP下载要点
http://blog.csdn.net/rejoice818/article/details/7736029 一.注意:官方光盘内“Software Utilities”目录下,可找到ICP或ISP ...
- 基于MDK的ARM-GCC开发环境建立及新唐M0的HID类设备的C++开发
一,下载安装测试arm-none-eabi-gcc编译工具链 1,查看arm-none-eabi-gcc编译工具版本 打开网页:https://sourcery.mentor.com/G ...
- 单片机入门学习笔记6:新唐单片机N76E003
学习新唐单片机是从2018年3月开始的,之前一点也不懂这一块单片机,之后脉络变的越来越清晰. 由于N76E003档次太低,新塘科技官方的管脚配置,芯片选型……都没有这一块芯片,资料唯独只有:芯片的数据 ...
- 新唐ARM9之NUC972学习历程之系统的搭建和BSP包的使用
说到嵌入式,我们首先想到的,就是它的复杂程度,LINUX,BSP,UBOOT,交叉编译,寄存器配置,等等一系列的问题,甚至有的时候我们对此一头雾水,很是头疼,不过我们今天要说的就是关于NUC972的一 ...
随机推荐
- SQL学习之用通配符进行数据过滤
一.Like操作符 之前介绍的所有的操作符都是针对已知值进行过滤.不管匹配一个值还是多个值,检验大于还是小于已知值,或者检查某个范围的值,其共同点是过滤中使用的值都是已知的. 但是这种方法并不是任何时 ...
- 玩转kindle paperwhite: 如何越狱,安装强大外挂软件koreader
NOTICE 1: 在更新kpvbooklet和使用最新版本的koreader(v2013.03-211)时候,会出现pdf文档无法重排的错误.亲测. 如果你是使用的最新版本koreader且出现上述 ...
- Hibernate的使用梳理
Hibernate创建步骤 (五大核心接口:Configuration/SessionFactory/Session/Transaction/Query) 1.新建java工程,导入需要的jar包. ...
- jsf小例子
有人问我用过jsf没? 当时没有用过,就看了一下: 写了一个小例子 JSF和struts2 差不多的,都有一些配置和跳转 struts2的action配置和JSF的faces-config.xm ...
- hdu 4455 Substrings(找规律&DP)
Substrings Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
- Android 中延迟执行的小结
一.开启新线程 new Thread(new Runnable(){ public void run(){ Thread.sleep(XXXX); handler.sendMessage();---- ...
- 从零开始PHP学习 - 第二天
写这个系列文章主要是为了督促自己 每天定时 定量消化一些知识! 同时也为了让需要的人 学到点啥~! 本人技术实在不高!本文中可能会有错误!希望大家发现后能提醒一下我和大家! 偷偷说下 本教程最后的目 ...
- php 前端获取数据
<pre name="code" class="python"><!doctype html> <html lang=" ...
- cocos2dx CCEditBox
CCTextFieldTTF是一个简单的封装,用起来不是那么便利,在cocos2dx的extension里,对输入框有更加简单使用的类,那就是CCEditBox 上代码先: bool EditBox0 ...
- SPOJ 705 Distinct Substrings(后缀数组)
[题目链接] http://www.spoj.com/problems/SUBST1/ [题目大意] 给出一个串,求出不相同的子串的个数. [题解] 对原串做一遍后缀数组,按照后缀的名次进行遍历, 每 ...