学51单片机的控制方式与使用编程的区别

 2024-01-08 08:02:28  阅读 0

对于学习硬件的人来说,首先要对硬件的基本用法有一个感性的认识,同时还要对硬件的控制方法有深入的了解。 如果从头开始学习Linux系统和移植,你会立即陷入深深的陷阱。 漩涡。 当我刚开始学习ARM时,我选择了ARM7(当时的想法是ARM9还很贵)。 我在学习ARM7的时候,仍然保留着学习51单片机的想法,使用ADS来编程。 第一个实验是控制 LED。 研究过ARM一段时间的人会笑它有多么愚蠢。 事实上,事实并非如此。 我觉得有这个流程会好很多,因为无论系统多么复杂,最终都会实现这些最底层的硬件控制。 因此,对这些硬件的控制有一个感性的认识要好得多。 在学习裸机编程时,还必须对硬件的架构和控制原理有充分的了解。 我称之为了解硬件。 所谓了解硬件,就是了解这个硬件是如何组织这么多资源的,以及这些资源是如何被CPU和编程控制的。 例如,计算机中有AD转换器、GPIO(通用IO口)、控制器等。 这些东西有一些寄存器来控制它们。 这些寄存器有一个地址。 那么这些地址是什么意思呢? 如何通过寄存器来控制这些外围设备的操作呢? 还有,每个内部单元在这个芯片的内存中都有一个对应的地址单元,那么这些地址和刚才提到的寄存器地址有什么关系呢? 它们是一样的吗? 对应的内部存储单元并不是线性排列的,那么如何将地址映射到内存空间来使用呢? 或者简单来说应该如何使用? 此外,当使用ADS对ARM9线进行编程时,需要使用初始化汇编文件。 这个文件有什么用呢? 里面的代码是什么意思? 没有这个可以吗? 这些都是对硬件的理解。 如果你明白了这些东西,你就会对硬件有一个深刻的理解。 这对于以后进一步的学习有很大的帮助。 如果你跳过这一步,我相信你越继续,你就会学得越好。 我感到很困惑,越发觉得这文写得深不可测。 因为你的基础还没有打好。 但首先要声明的是,我没有使用ADS来对ARM9进行编程。 我学完ARM7后直接用ARM9来学习Linux系统。 因此,我很难回答有关使用ADS编程ARM9的问题。 ^_^,我自己做吧。 研究一下。

很快将提供这部分的教程。 本教程中的例程不是我为我们代表的董事会编写的。 它们是我在我们学院实验室拍摄的,是英拜特为他们自己的实验箱写的。 不过,它是非常有意义的,可以作为一个有价值的参考。

其次,使用Linux系统进行一些基础实验。

购买一套板子时,通常会提供一些Linux测试例程。 这样做一段时间。 这个过程也是非常有意义的,也为进一步的学习积累了感性知识。 你能想象一个从未使用过 Linux 的人会怎样吗? 系统人能学好Linux编程吗? 按照说明书上的套路,做里面的实验。 虽然有点像婴儿学走路,有点弱智,但我想很多高手都会经历这个过程。

对此,深兰科技目前还没有计划提供相应的例程。 主要原因是开发板提供商会提供丰富的例程。 我们不会重复工作,只会提供他们没有的最有价值的东西。

第三,研究完整的Linux系统的运行过程。

所谓完整的Linux系统包括哪些部分呢?

三部分:、linux(linux内核)、(根文件系统)。

那么这三个部分是如何相互配合构成这个系统的呢? 各有什么用? 三者之间有何联系? 怎么联系? 系统的执行流程是怎样的? 一旦理解了这个问题,你就会对整个系统的运行情况有一个清晰的认识,这将为下一步构建这个Linux系统打下另一个重要的基础。 网上有大量关于这方面的信息,因此请自行研究。

第四,启动系统移植。

如上所述,完整的Linux有三个部分,你也知道它们之间的关系和作用,所以你现在要做的就是学会自己制作这些东西。

当然我不能要求你写这段代码,这是不可能的。 事实上,这三个都可以在网上下载相应的源代码,但是在你的系统上运行之前不可能下载并编译源代码。 它需要进行大量修改才能在您的板上运行。 修改的过程称为移植。 在移植的过程中,你要学习很多东西,了解很多相关的知识。 当你完成这个过程的时候,你会发现你已经是一个初出茅庐的高手了。

在这个过程中,如果你很有研究心,你一定会想到看源码。 有很多关于如何阅读Linux源代码的书籍。 我不提倡无目的地阅读Linux源代码。 用许三多的话来说,毫无意义。 当你在做移植的时候,你觉得必须要读源码,那就找一本基础好的书。 这里推荐倪吉利的一本好书《Linux内核分析与编程》。 这是一本针对 Linux 的书——这本书对 2.6.11 内核的介绍非常深入。 建议在阅读前提高一下自己的C语言编程水平。

至于各个部分的移植,网上也可以找到很多资料。 自己做研究。 但要提醒的是,很多介绍自己经历的东西或多或少都是有所保留的。 如果你遵循他所说的,你将永远成功。 有一些问题,但他不会告诉你如何解决。 这个时候,就得靠自己了。 如果你靠不了自己,就来找我一起学习吧。 我不能保证我能解决你的问题,因为我可能没有遇到过你的问题。 ,但我相信我可以给你一些建议,可能会帮助你解决问题。

这一步的最终目的是从源码官方主页下载标准源码包(全是国外的,伤心),然后修改,最后在板子上运行。

借用阿基米德的一句话:“给我一根网线,我就能搞定Linux”。

阅读完linux源码能找到_linux查找源码文件_linux源码在线阅读

第五,研究Linux驱动的编写。

移植系统并不是最终目标。 最终的目标是开发产品和项目,这些都需要驱动程序开发。

Linux驱动可以说是多种多样。 .4和.6的写法有很大区别。 都是.6但是不同版本的驱动也不同。 因此,编写Linux驱动程序并不是那么容易。 ,甚至没有足够的参考来为最新版本编写驱动程序。 那么我的建议是使用并移植一个不是很新的内核版本,这样你就有足够的信息来学习驱动程序编程。 这部分的推荐书籍可以参考另一篇文章《学习嵌入式Linux推荐书籍》。

第六,研究申请书的写作。

做作品或者项目的时候,除了写驱动之外,最后还需要写应用程序。 当前的趋势是图形应用程序的开发,最常用的图形应用程序是qt/e函数库。 我一直在使用这个函数库来开发自己的应用程序,但希望大家也能使用国产的函数库。 盗用周杰伦的口号是“支持国产,支持”。 编程比较类似于VC编程,上手比较容易,效果应该说是相当不错的。 我用它来开发ARM7程序。 但最大的缺点是没有这样的图形操作平台,极大地限制了它的推广。 我曾经幻想过与北京费曼公司(版权方)合作,利用函数库开发一个这样的图形操作平台。 但由于水平有限,这只能是幻想,哈哈。 完成这一步,你就基本学习完了嵌入式Linux的所有内容。

还有一点小经验想跟大家分享。 我在学习嵌入式Linux的时候很少问别人。 客观原因是我身边的老师、同学、前辈都不是这方面的专家。 主观原因是我不喜欢请教别人,喜欢自己研究解决问题。 这样做的好处是可以提高你解决问题的能力,因为在做这些事情的时候总会有很多你难以理解的问题。 其他人没有这方面的经验,并不是每个人都能给你所有问题的答案。 这个时候,你必须问自己解决问题,这样一来,个人解决问题的能力就非常关键了。 因此,我的建议是在互联网上搜索一般性问题。 如果实在找不到答案,请咨询专家。 如果还是不行,那就自己研究一下,而不是等待别人帮你解决问题。 请记住,问题是您学习的最佳机会。

标签: 编程 移植 编写

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码