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