2020年 07月 22日 星期三
您的位置: 威廉希尔主页 > 单片机技术 >

第001课 不要再用老方习单片机和ARM

来源:未知     作者:威廉希尔     发布时间:2020-07-20 10:48         

  * 然后是仪器 (TI)的,TI开始不资料,现在逐渐公开了,有AM437X、AM335X;

  再在搜索关键词中加入“教程”后,S3C2440的搜索结果比AM335X更多,因此S3C2440的资料仍是最多的,TI的营销更好,当然,TI作为工控板,其用户也是很多的。

  我们后面会考虑使用TI的芯片重新一套视频,但需要2-3年的功夫,所以,现在还是使用S3C2440吧。

  等你工作的时候,你使用不同的芯片,那么差别在于这些模块,这些硬件的操作,差别不在CPU操作,你写程序的时候,根本不涉及CPU的内部机制。

  在于外设操作,不在于CPU,写程序几乎不涉及CPU,只有涉及中断时,才会跟CPU的机制有点关系,但是不同CPU的架构差异很小,并且我们后面开发Linux驱动时,内核已经帮我们做好了这些处理,根本不需要去关心。**

  从上一课我们知道,驱动=软件框架+硬件操作。这个软件框架对于所有的芯片都是一样的,因为都是用Linux内核。

  而这个硬件操作,你在2440上掌握了串口操作,I2C操作、SPI操作,掌握了这些硬件的语言,你换一种芯片,是完全类似的。

  我假设你选择了2440开发板,那么怎么使用2440开发板来学习单片机的开发呢?又使用什么开发工具呢?

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

  学习路线 的这篇文章,里面有个比较:

  实际上它就是Linux下的单片机学习,只是一切更加原始:所有的代码需要你自己来编写;哪些文件加入工程,需要你自己来管理。

  在工作中,我们当然倾向于使用Windows下更便利的工具,但是在学习阶段,我们更想学习到程序的本质。

  你掌握了ARM+Linux的裸机开发,再回去看Windows下的单片机开发,会惊呼:怎么那么简单!并且你会完全明白这些工具没有向你展示的技术细节。

  如果我们基于ARM+Linux,不使用这些Windows工具,你可以学得更深,并且单片机的大全Bootloader,他就是ARM+Linux开发的,他并不使用Windows下的工具。

  你基于ARM+Linux学裸板、学单片机,你可以学得更多,因为我们一切都从零开始的。我们既管理这些代码,也可以知道芯片上电的时候做了什么事情,知道程序自己怎么把自己读到内存,且知道怎么去规划内存,知道怎么代码重定位……

  我说的这些概念,你可能听都没听过,这是因为Windows下这些好用的工具把这些统统都给屏蔽了。

  我们使用ARM+Linux进行裸板开发,一旦掌握了ARM+Linux开发这套机制,再回过头去看这些Windows工具、看STM32的话,你只需要几分钟就可以搞定。

  并且你可以无缝进入后续的学习,因为你已经熟练掌握了Linux的操作,后面的Bootloader是在Linux下开发的,后面的Linux驱动也是在Linux下开发的。

  你编写代码的时候,可以使用Windows下各种好用的工具,文本工具等,但便宜的时候,使用arm-Linux-gcc来编译。

  本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

  生活中我们经常会犯眼高手低的毛病,很多东西看着别人弄很容易,但轮到自己的时候就会发现其实没有想象中的简单。学完51单片机时,我以为小小的单片机无非就是进行一些IO口的控制罢了,但今天在进行AVR系列单片机学习的时候,才发现原来单片机还有很多的不同,自己原来掌握的东西还远远不足,所以无论到什么时候只有虚心学习,不断努力才能真正的掌握一门技术,学习的过程也是自己人格丰富的过程。下面来说说对EEPROM学习的一些感受。AVR单片机内部已集成了512kb的EEPROM,对EEPROM的操作比51单片机相对简单一些。写EEPROM操作:读操作:主函数将记录打开开发板的次数,将开机数送EEPROM保存,开机后使用LED显示开发板的启动次数

  这段时间在用atmel的系列单片机at90usb128x/64x和atmega32u4设计键盘,有一块at90的单片机由于熔丝位设置错误被锁死,导致progisp无法给其刷程序,网上查了有几种方锁:用有源晶振的输出脚给到单片机的晶振输入脚。(前提是单片机的熔丝位中设置为外部时钟)用正常单片机对的晶振输出脚给到熔丝位错误的单片机的晶振输入脚。(前提是单片机的熔丝位中设置为外部时钟)用正常单片机编程输出时钟给到熔丝位错误的单片机的晶振输入脚。(前提是单片机的熔丝位中设置为外部时钟)由于我的单片机熔丝位设置成了内部时钟,以上三种方法无效,只能请出最后的救命稻草——高压编程。在百度上找的一些方案大都只支持atmega8/16这些低阶

  一、 51单片机串行口工作原理MCS-51系列单片机片内有一个串行I/O端口,通过引脚RXD(P3.0)和TXD(P3.1)可与外设电路进行全双工的串行异步通信。1.串行端口的基本特点8031单片机的串行端口有4种基本工作方式,通过编程设置,可以使其工作在任一方式,以满足不同应用场合的需要。其中,方式0主要用于外接移位寄存器,以扩展单片机的I/O电路;方式1多用于双机之间或与外设电路的通信;方式2,3除有方式l的功能外,还可用作多机通信,以构成分布式多微机系统。串行端口有两个控制寄存器,用来设置工作方式、发送或接收的状态、特征位、数据传送的波特率(每秒传送的位数)以及作为中断标志等。串行端口有一个数据寄存器SBUF(在特殊

  在正常情况下,51单片机在上电复位后,所有IO口默认都为高电平,都工作在准双向IO模式,但是STC15系列以后的单片机出现了IO的4种工作模式,一个带有复用功能的IO在上电复位后就会出现不是准双向IO模式的情况,这些引脚在使用时就需要我们多多关照啦。1、PWM相关的引脚在STC15系列单片机中,于PWM2到PWM7相关的12个IO,在上电复位后,默认为高阻输入模式,需要对外输出时,需要用户通过程序将其设置为推挽输出或者是准双向IO模式。在STC8系列单片机中,和PWM相关的所有IO复位后是准双向IO模式,用户可以在通过ISP软件烧写(下载)程序时,选择将其设置为开漏输出模式,同样用户也可以通过程序的方式设置为所需要的工作模式

  在数字电路,我们经常会遇到逻辑电路,而在 C 语言中,我们则经常用到逻辑运算,二者在原理上是相互关联的。首先,在“逻辑”这个概念范畴内,存在真和假这两个逻辑值,而将其对应到数字电路或 C 语言中,就变成了“非 0 值”和“0 值”这两个值,即逻辑上的“假”就是数字电路或C 语言中的“0”这个值,而逻辑“线 值”。然后,我们来具体分析一下几个主要的逻辑运算符。我们假定有 2 个字节变量:A 和 B,二者进行某种逻辑运算后的结果为 F。以下逻辑运算符都是按照变量整体值进行运算的,通常就叫做逻辑运算符:以下逻辑运算符都是按照变量内的每一个位来进行运算的,通常就叫做位运算符:我们今后要看资料或芯片手册的时候,会经常遇到

  在以前的文章中,我提到过,单片机在电学里面,属于很简单的一种器件,外表看,就是一个芯片,长着很多的脚。内部,就是一堆寄存器。不同的单片机,外部表现就是形状和引脚数量和引脚名称可能不一样,内部,就是寄存器名称不一样。我们要做的,就是写程序控制单片机里面的寄存器,然后通过引脚表现出来完成各种电子产品。所以,你在看别人写的程序的时候,会经常看到给单片机寄存器赋值的语句。下面就以最简单的控制51单片机引脚高低电平来说明一下。(不要总是存在51单片机已经淘汰的想法,51单片机至今任然是出货量最大的单片机,并且各大公司每年都有新款的51单片机推出,功能越来越强劲,做产品,要选最合适的单片机,而不要总想用牛逼的单片机。)例如,单片机P1口

  51单片机PIC单片机AVR单片机ARM单片机嵌入式系统汽车电子消费电子数据处理视频教程电子百科其他技术STM32MSP430单片机资源下载单片机习题与教程词云:

      威廉希尔