MCU知识总结

1. Brown-Out Reset

掉电复位,或电源电压跌落复位, 当输入电压VCC跌到某一门限时芯片复位
The MCU is reset when the supply voltage VCC is below the Brown-Out Reset threshold voltage
and the Brown-out Detector is enabled. The Brown-out threshold voltage is programmable.

2. Totem-pole

推拉输出电路

3. IAR调试出现The stack plug-in failed to set a breakpoint on "main". The Stack window will not be able to display stack contents. (You can change this setting in the Tool>Options dialog box.)的警告,程序能烧进去,但不能调试。

需要 进行如下配置:
iar->options->linker->output->format;
选择 Debug information for c-SPY选项


4. newlib
newlib是一个用于嵌入式系统的开放源代码的C语言程序库,由libc和libm两个库组成,特点是轻量级,速度快,可移植到很多CPU结构上。newlib实现了许多复杂的功能,包括字符串支持,浮点运算,内存分配(如malloc)和I/O流函数(printf,fprinf()等等)。其中libc提供了c 语言库的实现,而libm提供了浮点运算支持。

5. Open-drain
open-drain是漏极开路输出的意思,相当于集电极开路(open-collector)输出,即ttl中的集电极开路(oc)输出。
一般用于线或、线与,也有的用于电流驱动。
open-drain是对mos管而言,open-collector是对双极型管而言,在用法上没啥区别。

开漏形式的电路有以下几个特点:
(1). 利用外部电路的驱动能力,减少IC内部的驱动。 或驱动比芯片电源电压高的负载.
(2).可以将多个开漏输出的Pin,连接到一条线上。通过一只上拉电阻,在不增加任何器件的情况下,形成“与逻辑”关系。这也是I2C,SMBus等总线判断总线占用状态的原理。如果作为图腾输出必须接上拉电阻。接容性负载时,下降延是芯片内的晶体管,是有源驱动,速度较快;上升延是无源的外接电阻,速度慢。如果要求速度高电阻选择要小,功耗会大。所以负载电阻的选择要兼顾功耗和速度。
(3). 可以利用改变上拉电源的电压,改变传输电平。例如加上上拉电阻就可以提供TTL/CMOS电平输出等。
(4). 开漏Pin不连接外部的上拉电阻,则只能输出低电平。一般来说,开漏是用来连接不同电平的器件,匹配电平用的。

6.C语言中将绝对地址转换为函数指针以及跳转到内存指定位置处执行的技巧
要对绝对地址0x100000赋值,我们可以用
     * (unsigned int  * ) 0x100000 = 1234;
      那么要是想让程序跳转到绝对地址是0x100000去执行,应该怎么做?
     *((void (*)( ))0x100000 ) ( );
    首先要将0x100000强制转换成函数指针,即:
     (void (*)())0x100000
     然后再调用它:
   *((void (*)())0x100000)();
   用typedef可以看得更直观些:
    typedef void(*)() voidFuncPtr;
   *((voidFuncPtr)0x100000)();
 
又如
如果用 C 语言,可以像下列示例代码这样来调用内核:
void (*theKernel)(int zero, int arch, u32 params_addr)
= (void (*)(int, int, u32))KERNEL_RAM_BASE;
……
theKernel(0, ARCH_NUMBER, (u32) kernel_params_start);
KERNEL_RAM_BASE 是内核在系统内存中的第一条指令的地址。

7. On Die Termination
ODT(On-die Termination,片内终结器)是内建核心的终结电阻器。
使用DDR SDRAM的主板上面为了防止数据线终端反射信号需要大量的终结电阻,它大大增加了主板的制造成本。实际上,不同的内存模组对终结电路的要求是不一样的,终结电阻的大小决定了数据线的信号比和反射率。因此主板上的终结电阻并不能非常好地匹配内存模组,还会在一定程度上影响信号品质。DDRII内建了终结电阻器,为DDRII带来了两个好处,一个是去掉了主板上的终结电阻器使主板的成本降低,也使PCB板的设计更加容易。第二个好处是终结电阻器可以和内存颗粒的"特性"相符,使DRAM处于最佳状态。

你可能感兴趣的:(c,嵌入式,dialog,语言)