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

时间:2022-01-07 15:10:51

  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进行仿真用的。

这是当时自吹用的,虽然有点黄婆卖瓜的嫌疑,也算符合事实。兄弟们如觉得胃部不适,海涵了从51跳新唐cortex-m0学习1——思想转变
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即插即用