打印
[新手园地]

【第四批】从51跳新唐cortex-m0学习1——思想转变

[复制链接]
8224|28
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
watch186|  楼主 | 2011-11-18 22:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Cortex-M0学习第一帖
序言:这里先说一下,大家在看帖子时候,可能看见字数比较多的,可能只是先大概浏览一下,之后从中挑几段大概瞅瞅,但是我要说,如果你碰到一个适合的帖子,请仔细品读,这是我在论坛里最受用的东西。现在先大概介绍一下这篇帖子,以供大家浏览有个主次。帖子前面主要介绍一个cortex新手是如何开始学习板子的,里面可能有些东西并不一定准确,但都是我的一些经验,但是里面引证的几篇**真的对学习新唐是很有帮助的。自己在学习时也是参考了许多帖子,下载了许多资源,但是其中有一部分对于我们来说可能有些弯路,但是本文所引证的几篇都是比较权威又经过我自己亲自试验过的,可信度还是杠杠的。后面说了一下自己对新唐内核的理解(之前是没有在网上见到的),就是不知道对不对,还请大家指点。
正文
先介绍一下本人学习的背景:本人之前是一直在用51,除了前段时间有幸见识了一下STM32的大概情况外,基本上是没有接触过CORTEX-M内核的,看到鄙人有多菜啦吧,呵呵。所以这里有幸32位机的“破处”交给了二姨家的菜农大哥,哈哈(我是男的)。所以一开始从51上的思路转到cortex上有很大得不适应,尤其是在内核、编程思路、程序下载方式等上,和前辈的差距不是一点,这也是为什么从收到板子到现在才开第一帖的原因。但是,虽然,这次新的学习很费周折,但是,我想和我一样的人还不止少数的,所以我的“51cortex”的经验还是对我们这些大菜鸟还是很有用处的,现就我这几天的问题和心得汇报如下,希望可以给和我一样的菜们解惑,不对的地方还请大侠们批评指正。(这里还要感谢一下菜农大哥,不论是开始取板子,还是后来看菜农的讲义,都让我受益匪浅啊,让我认识到了高手就是高手,不论是从人品还是技术上,我现在已经是对菜农佩服的五体投地啦,哈哈——怎么这么像毕业答辩时的致谢啊,哈哈)言归正传,说下我自己对整个芯唐cortex的认识:
一、先说下拿到一块新板子,必须先得有一个整体的思路,怎么开始学习:是先搞通软件,看手册,学习下程序,看例程,了解资源、功能还是和大家一样,先晒一下板子的裸照,哈哈(玩笑这个)。说下我的思路:1.刚拿到板子,首先看一下里面的东西,两根usb数据线(供电+程序下载),1232串口线(基本用不到,本人用的笔记本,上面没有串口,所以自备一根U转串线),开发板一块(主板),nulink板一块(刚开始以为是仿真器,后来用了以后才发现是个下载器,呵呵)。2.看芯片的手册,了解下芯片里面都有哪些资源,这些资源以后都可以用在哪些方面,手册现在不用细看,太多,先对芯片有个大体的认识很重要(就和我之前看os一样)。3.之后要学如何往板子里下载程序,这个是学习和应用一个板子最基础的。不要小看了这个步骤,51菜们,cortex的下载方式和之前的任何一款51都是不一样的,也和STM32有所差别,所以,研究透如何下载程序,对理解芯唐,理解cortex是很重要的,不可忽视。我也是刚刚到这一步,呵呵。4.之后就要开始软件啦。我大概看了下,cortex的软件的思路就和在51上引用框架、os有点像,其是有自己的函数库的,所以,进行软件时,函数库的清楚还是很重要的。5.等这些都熟悉了,剩下的东西就要留给开发者自己啦,往上面加外围设备,自己调试驱动,在上面跑OS等等。
二、接下来详细说下如何下载程序吧。虽然论坛里面说了许多关于程序下载的东西,仔细看来里面总有些说法不一样的,最后究其原因是因为大家用的下载软件的版本不同。可能是因为新唐的cortex刚出来不久吧,配套的软件没有那么成熟,版本一直在升级,这就导致了每个人的经验不一样。所以,在下载程序之前,一定要找好相关软件。我当时就是,尤其是菜农大哥的hotisp,大家一定要对好版本。下载软件中,有几个是必备的:
1keil uVision4 (主要用于程序调试)
2NuMicro ISP Programming Tool(主要用于ISP下载)
3NuMicro ICP Programming Tool(主要用于ICP下载)
注意看上面两个软件名字挺像,但是是不一样的,后面讲他们各自的作用。
4,菜农大哥的HotISP2.55
(我用的是这个版本,之前下了个HotISPV280B版的,但是按照大哥的讲义没有调出来,可能是版本太高啦吧,所以就换了版本)

在这里给出这个版本的下载地址,这里说一下,这个版本的hotisp可以按照菜农大哥的教程原模原样的步骤进行。
https://bbs.21ic.com/attachment.php?aid=77240&k=f51f193ac79c49de57f5a4651f3bde25&t=1321582908&sid=9f5eXL7ek%2FM%2B52PWvsad6xmeuGfBB6qSbkbBl0LEq%2F7lZ98
忘了是在哪个帖子里下的啦 ,是在不好意思,这是在下载器里复制的链接地址,呵呵。
5nulink for keil(这个貌似是个驱动,但是现在还不知道有什么用,难道是识别NULINK的?)
评分
参与人数 2威望 +2 收起 理由
xiao_huang + 1 很给力!
xyz549040622 + 1

相关帖子

沙发
watch186|  楼主 | 2011-11-18 22:07 | 只看该作者
三、有了软件,就要跟着教程进行程序下载的调试啦。那么教程看谁的呢,这里建议  新手园地  的帖子教程大家可以学习,多看,确实很有好处,但是如果自己按步就班进行软件下载的学习,那么久不得不看  菜农群课笔记 里的标准教程啦。

呵呵  大哥在线~

这里推荐帖子 《 菜农群课笔记之ICP与ISP》这个帖子必须仔细研读  里面的话仔细想想更有助于理解cortex的芯片内容,像“要将清楚引导程序和运用程序的区别”,“ 在上电启动时,通过某种接口和协议与PC通讯,完成对FLASH的烧录”,“ 新唐的实际也是一样的,不同的是必须你将这个 ISP固件想办法先放进去”。
在这里要说几个我认为相当有用的帖子,有了这些你就完全可以自己掌握下载方式啦
1,《 菜农群课笔记之ICP与ISP》
https://bbs.21ic.com/frame.php?fr ... om/iclist-78-1.html
2,《各种方式烧程序到开发板》
https://bbs.21ic.com/icview-284406-1-1.html
但是里面作者说“要在松开RST后过一会按下connect”这儿我倒是没有发现   呵呵  接下来还有待考证。
3,《HOT大叔助学简易Nu-Link ---- 离线烧写试验》
https://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机分离时的芯片程序下载,而且也可以只用一根线烧写,再手动下到板子上,很方便的。而后者是方便于我们这些只有本本同学,机子上面木有串口,这种方法很方便的 ,嘻嘻。

使用特权

评论回复
板凳
watch186|  楼主 | 2011-11-18 22:09 | 只看该作者
哎   想传个WORD 为什么传不上去呢……

使用特权

评论回复
地板
watch186|  楼主 | 2011-11-18 22:13 | 只看该作者
word不行就传PDF吧  只是不适合大家  阅读修改

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

190.54 KB

使用特权

评论回复
5
X-Hawk| | 2011-11-18 22:18 | 只看该作者
nu-link 是下载器,也是仿真器啊。
nulink for keil是一个驱动,让keil驱动nu-link进行仿真用的。

这是当时自吹用的,虽然有点黄婆卖瓜的嫌疑,也算符合事实。兄弟们如觉得胃部不适,海涵了:lol
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即插即用

使用特权

评论回复
6
watch186|  楼主 | 2011-11-18 22:22 | 只看该作者
5# X-Hawk 是啊  呵呵  估计是我还没走到那一步了  我还以为只是个下载器呢  受教啦  呵呵  谢谢

使用特权

评论回复
7
X-Hawk| | 2011-11-18 22:28 | 只看该作者
5# X-Hawk 是啊  呵呵  估计是我还没走到那一步了  我还以为只是个下载器呢  受教啦  呵呵  谢谢
watch186 发表于 2011-11-18 22:22


嗯,甭客气!兄弟们有反馈,乐于使用它,作为新唐人也是很开心的。

使用特权

评论回复
8
hotpower| | 2011-11-18 23:07 | 只看该作者
楼主有眼不识泰山,他就是nulink和icp软件的维护作者酒鬼先生。牛卧堂的版主之一。
他的同事则是维护isp软件。
新唐的icp和isp可以说是非常完美的,这与酒鬼先生和同事的努力是分不开。

使用特权

评论回复
9
X-Hawk| | 2011-11-18 23:12 | 只看该作者
谢谢菜农大叔褒奖!

使用特权

评论回复
10
hotpower| | 2011-11-18 23:32 | 只看该作者
事实如此,酒鬼先生不用客气。
对于51一般都是ISP下载,大家都感觉很方便,实际新唐的ISP更方便使用并且方法众多。
可以说是当今比较完善的ISP方式。
nulink不只是一个下载器,更重要的是硬件仿真和将ISP的固件下载到LDROM中。
下载ISP固件后新唐的ISP下载方式就和其他MCU一样的ISP了。
由于目前新唐的ISP方式已有三种:
1.串口ISP
  新版本(V2.3以上)只用TXD和RXD,并且波特率为115200,不需拉低ISPEN。
旧版本还需要将ISPEN(nuc1xx系列为PB.15,m05x系列为P3.2)拉低。
2.USPISP(nuc1xx系列)
  新版本(V2.3以上)需要将PB.15一直拉低。
旧版本拉低PB.15但不需要一直拉低。
3.虚拟APROM为U盘
如同文件拷贝把用户程序拷贝到APROM中。

unlink可以完成所有操作,可以写入LDPROM,APROM和DATAFLASH三个区域。
酒鬼先生已经用官方的语气说的很详细。

使用特权

评论回复
11
watch186|  楼主 | 2011-11-19 08:40 | 只看该作者
能得到  酒鬼大哥 和  菜农大哥  的指点很开心,更加坚定了新唐……

使用特权

评论回复
12
hotpower| | 2011-11-19 12:11 | 只看该作者
酒鬼是国军

使用特权

评论回复
13
Metalor| | 2011-11-19 15:39 | 只看该作者
顶!支持!就是有点罗嗦

使用特权

评论回复
14
murex| | 2011-11-19 21:42 | 只看该作者
学习就得对比,通过自己熟悉的来对比,这样更容易理解消化,虽然有些理解上还有点出入,基本已经很不错了,只要深入下去肯定都会搞懂的,一定要顶下

使用特权

评论回复
15
xyz549040622| | 2011-11-20 15:03 | 只看该作者
看了你的帖子理解很多

使用特权

评论回复
16
hotpower| | 2011-11-22 16:51 | 只看该作者
要实际多操作几次就彻底明白了。纸上谈兵不好,因为这没什么理论。

使用特权

评论回复
17
lee9888| | 2011-11-24 17:28 | 只看该作者
好多东东还不认识啊,努力

使用特权

评论回复
18
watch186|  楼主 | 2011-11-24 20:58 | 只看该作者
17# lee9888 呵呵  多看  看习惯了就好啦

使用特权

评论回复
19
zzyaizll| | 2012-2-9 19:25 | 只看该作者
很到位呀

使用特权

评论回复
20
jack_shine| | 2012-2-13 13:26 | 只看该作者
学习下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

104

帖子

1

粉丝