从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的一 ...
随机推荐
- 虚拟键盘,移动web开发的痛
原生APP的弹出虚拟键盘和收回虚拟键盘,输入框始终贴在虚拟键盘的上方.如下图: 如果移动端web也想做类似的功能,可以实现吗? 你可能会说着:“不就是放一个position: fixed;的输入框在 ...
- sql获取表字段名、描述和类型
SELECT TableName = OBJECT_NAME(c.object_id), ColumnsName = c.name, Description = ex.value, ColumnTyp ...
- ZeroClipBoard 复制粘贴插件
ZeroClipboard 1. 引用js 1 <script type="text/javascript" src="/ZeroClipboard.js&q ...
- 弹出窗口a标签写下载,再弹出窗口
如果这个窗口是弹出出口,直接<a href="">点击下载<a>是不行的,得用js这样写,弹出并关闭,不然会回到首页,如果没有定义首页会报错,<a h ...
- U盘安装CentOS6.x报错:Missing ISO 9660 Image
以前都是DVD安装CentOS,这次因为装固态硬盘,然后把光驱给卸载了.所以就尝试用U盘引导安装CentOS,结果安装时竟然出现了Missing ISO 9660 Image的错误. 解决方案: 将C ...
- IOS-将长文字转化成图片方法
我们在看微博时,会看到一些长图片上的显示文章,现在就介绍下如何实现.分析下还是很简单的,总结如下:1.计算文字区域的高 2.利用UIGraphics图形上下文方法来实现 3.验证方法:UIImageW ...
- 为什么要for循环以及for循环的流程
/* Name:为什么需要循环以及for循环流程 Copyright: By.不懂网络 Author: Yangbin Date:2014年2月10日 03:16:55 Description:求1 ...
- (iOS)Storyboard/xib小技巧
1.选择被view覆盖住的view 当你想直接在view中选择自己想要的元素时,但是又碍于一个view上叠加的元素太多很难直接选中,那么在这时,你同时按住键盘上的shift和 control键,然后在 ...
- Qt项目管理(33个规则)
2016-06-20 花莫弦 小小杂货铺LY 一.qmake的介绍 qmake是Trolltech公司创建的用来为不同的平台和编译器书写Makefile的工具. 手写Makefile是比较困难并且容易 ...
- android 关于多任务下载问题
关于多任务下载问题 近期项目中,遇到一个问题,列表数据中的图片地址是一个需要下载JS再解析的字段,之前的图片下载是一个异步的过程,由一个队列处理. Android系统以不同寻常的方式处理多个应用 ...