Windows下的单片机学习与 基于ARM+Linux裸机学习 有什么差异性???

 以前在Windows开发的时候,我们使用ADS、Keil、MDK等,你直接写个main()函数,所有的细节都帮你实现了,谁来调用main()函数,有他帮你做了。这main()所生成出来的代码,怎么放入到内存里面,这工具也帮你做了,我们基本上只需要写main()函数,只需要写C语言就行了。但是这里掩盖了太多的技术细节,里面有个比较:

① Windows下的单片机学习,深度不够
  • Windows下有很好的图形界面单片机开发软件,比如keil、MDK等。
  • 它们封装了很多技术细节,比如:
  • 你只会从main函数开始编写代码,却不知道上电后第1条代码是怎么执行的;
  • 你可以编写中断处理函数,但是却不知道它是怎么被调用的;
  • 你不知道程序怎么从Flash上被读入内存;
  • 也不知道内存是怎么划分使用的,不知道栈在哪、堆在哪;
  • 当你想裁剪程序降低对Flash、内存的使用时,你无从下手;
  • 当你新建一个文件时,它被自动加入到工程里,但是其中的机理你完全不懂;
  • 等等等。
② 基于ARM+Linux裸机学习,可以学得更深,并且更贴合后续的Linux学习。
  • 实际上它就是Linux下的单片机学习,只是一切更加原始:所有的代码需要你自己来编写;哪些文件加入工程,需要你自己来管理。
  • 在工作中,我们当然倾向于使用Windows下更便利的工具,但是在学习阶段,我们更想学习到程序的本质。
  • 一切从零编写代码、管理代码,可以让我们学习到更多知识:
  • 你需要了解芯片的上电启动过程,知道第1条代码如何运行;
  • 你需要掌握怎么把程序从Flash上读入内存;
  • 需要理解内存怎么规划使用,比如栈在哪,堆在哪;
  • 需要理解代码重定位;
  • 需要知道中断发生后,软硬件怎么保护现场、跳到中断入口、调用中断程序、恢复现场;
  • 你会知道,main函数不是我们编写的第1个函数;
  • 你会知道,芯片从上电开始,程序是怎么被搬运执行的;
  • 你会知道,函数调用过程中,参数是如何传递的;
  • 你会知道,中断发生时,每一个寄存器的值都要小心对待;
  • 等等等。
  • 你掌握了ARM+Linux的裸机开发,再回去看Windows下的单片机开发,会惊呼:怎么那么简单!并且你会完全明白这些工具没有向你展示的技术细节。


如果我们基于ARM+Linux,不使用这些Windows工具,你可以学得更深,并且单片机的大全Bootloader,他就是ARM+Linux开发的,他并不使用Windows下的工具。 你基于ARM+Linux学裸板、学单片机,你可以学得更多,因为我们一切都从零开始的。我们既管理这些代码,也可以知道芯片上电的时候做了什么事情,知道程序自己怎么把自己读到内存,且知道怎么去规划内存,知道怎么代码重定位……

我说的这些概念,你可能听都没听过,这是因为Windows下这些好用的工具把这些统统都给屏蔽了。 我们使用ARM+Linux进行裸板开发,一旦掌握了ARM+Linux开发这套机制,再回过头去看这些Windows工具、看STM32的话,你只需要几分钟就可以搞定。 并且你可以无缝进入后续的学习,因为你已经熟练掌握了Linux的操作环境,后面的Bootloader是在Linux下开发的,后面的Linux驱动也是在Linux下开发的。

 

http://winchiphead.com/download/index.htm 南京沁恒电子有限公司 文件名 文件说明 版本 大小 本地下载 CH451DS1.PDF CH451芯片的中文版说明书 4.2 280KB CH365DS1.PDF CH365芯片的中文版说明书 1.4 270KB CH376DS1.PDF CH376芯片的中文版说明书 1.0 277KB CH372DS1.PDF CH372芯片的中文版说明书 3.5 209KB CH374DS1.PDF CH374芯片的中文版说明书 2.1 217KB CH375DS1.PDF CH375芯片的中文版说明书 3.5 225KB CH375DS2.PDF CH375芯片的中文版说明书2 3.4 96KB CH340DS1.PDF CH340芯片的中文版说明书 1.4 137KB CH341DS1.PDF CH341芯片的中文版说明书 2.4 198KB CH341DS2.PDF CH341芯片的中文版说明书2 2.3 182KB CH352DS1.PDF CH352芯片的中文版说明书 1.0 210KB CH452DS1.PDF CH452芯片的中文版说明书 2.2 335KB CH432DS1.PDF CH432芯片的中文版说明书 1.1 213KB CH423DS1.PDF CH423芯片的中文版说明书 1.2 202KB CH361DS1.PDF CH361芯片的中文版说明书 0.0 1KB CH371DS1.PDF CH371芯片的中文版说明书 0.0 1KB -------------------------------------------------------------------------------- 文件名 文件说明 版本 大小 本地下载 CH451IF.ZIP CH451的MCS51和PIC单片机的接口程序 1.2 8KB CH451PLN.PDF 数码管显示驱动和键盘扫描的方案比较 2.1 101KB CH365DRV.ZIP CH365的Windows驱动程序和动态库 1.6 50KB CH365EVT.ZIP CH365的升级ISA评估板以及PCI设计参考 2.0 1.18MB CH365ED.ZIP 用CH365设计WIN终端卡/电子盘的方案 1.2 1.28MB CH364ISL.PDF 用CH364设计硬盘和网络安全隔离卡的方案 1.0 92KB CH365CAN.ZIP 用CH365设计PCI总线CAN接口卡的方案 1.2 207KB CH362ROM.ZIP 用CH36x通过Boot-ROM扩展BIOS的方案 4.2 244KB CH372DRV.ZIP CH372/CH375的Windows驱动程序/动态库 2.5 37KB CH372EVT.ZIP CH372+CH451的评估板说明和USB设计参考 2.4 996KB CH372DBG.ZIP WINDOWS下CH372/CH375的调试工具程序 1.4 303KB UPD371.PDF 用CH372或CH375替换CH371的说明 1.1 98KB CH375EVT.ZIP CH375的51单片机读写U盘评估板的说明 3.0 886KB README.PDF USB芯片HOST电路及PCB设计的注意事项 2.5 195KB CH375HST.ZIP CH375主机方式应用参考(USB打印机等) 1.2 122KB CH375HM.ZIP U盘文件读写模块的说明,单片机读写U盘 2.4 838KB CH375HMU.ZIP CH375的U盘模块的升级/配置/演示工具 3.2 203KB CH341SER.ZIP USB转串口CH341的WINDOWS驱动程序 3.1 128KB CH341PRT.ZIP USB转打印口CH341的WINDOWS驱动程序 1.2 110KB CH341PAR.ZIP USB转并口CH341的WINDOWS驱动程序 2.2 51KB CH341EVT.ZIP CH341综合功能评估板说明及应用参考 1.1 722KB CH375X86.ZIP 8086/X86嵌入式PC工控机读写U盘的方案 1.9 663KB CH452IF.ZIP CH452单片机C接口程序和MCS51汇编接口 1.2 12KB USB_SER.PDF USB转串口Serial及USB转RS232模块说明 1.3 244KB CH374EVT.ZIP 评估板说明及单片机使用U盘存储应用参考 1.3 734KB FDD_UDD.TXT 仿软驱接口的U盘驱动器的说明 1.2 1KB -------------------------------------------------------------------------------- 文件名 文件说明 版本 大小 本地下载 SAMPLE.DOC 芯片样品申请单 1.1 21KB PACKAGE.PDF 封装尺寸说明 1.5 176KB
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值