嵌入式开发中的常见问题

1、单片机等小的外部总线

单片机等小的MCU一般都有外部总线,可以用来接真彩LCD(异步总线接口TFT显示屏)。手机上,大部分都是用同步(先给出一个地址,然后连续的刷数据)接口的屏。

2、ARM处理器的应用场景

ARM7:工业控制、手机;

ARM9:图像显示;

Cortex-A:高性能的应用:手机、山寨本;

Cortex-M:低端的应用;

Cortex-R:中端的应用,比较少见;

3、ARM处理器的异常

一般情况下,前面的一些中断(比如前15种)是由ARM公司自己设计的,并且是固定的,后面的部分中端则是由不同的芯片厂家定义的。

4、处理器的System Timer

System Timer 即Systick,在没有OS时,可以作为通用的定时器使用。在需要OS时,可以作为OS的系统时钟。

5、同一中断的禁止和使能分别由不同的寄存器控制

目前,很多的处理中都会有这样的现象,同一中断的禁止和使能分别由不同的寄存器控制。禁止该中断时,向中断屏蔽寄存器中对应的位写入1,使能该中断时,向中断使能寄存器的对应位写入1。

这样分开控制的好处是:

A.不用将中断控制寄存器的值先读出来,进行或运算后再写回去;

B.直接写1,不会影响到其它位所控制的中断;

6、OD门输出

在处理器电平与外设电平不匹配时可以使用。

7、如何设置IO的状态以降低功耗

若某输入引脚悬空,有漏电流,会耗电。判断方法:用手摸时,电流会变动。

A.将不用的引脚设置为0或者1的输出模式;

B.若配置为输入引脚,应将内部上拉打开;

8、ADC和DAC

在系统睡眠时,应该将ADC和DAC关掉,否则会耗电。

9、看门狗的使用

A.不要在中断中喂狗;

B.喂狗越没有规律越好;

C.如果在任务中喂狗,一定要把喂狗操作放在最低优先级的任务中,这样才能确保正常工作的task都被调度到。

10、I2C总线

SDA和SCL都是双向的,开漏驱动的,使用时要加上拉电阻。

I2C协议的通讯过程:

A.发送start信号(谁发送start信号,谁就是主机)

B.发送从地址

C.传输数据

D.发送stop信号

每发送一个字节(8 bit)就要等待从机的ACK。

用软件模拟的I2C总线有如下缺点:

A.不能进行总线仲裁

B.由于要一直检测时钟信号,因此难于实现从设备;

11、逻辑0页

很多MCU的逻辑0页可以任意映射,这样就可以在flash中烧写多个系统。通过配置字节配置系统从不同的地址启动,这样可以实现升级。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(C编程,单片机相关,linux系统及驱动)