控制/MCU
掉电复位,或电源电压跌落复位, 当输入电压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.
推拉输出电路
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选项
newlib是一个用于嵌入式系统的开放源代码的C语言程序库,由libc和libm两个库组成,特点是轻量级,速度快,可移植到很多CPU结构上。newlib实现了许多复杂的功能,包括字符串支持,浮点运算,内存分配(如malloc)和I/O流函数(printf,fprinf()等等)。其中libc提供了c 语言库的实现,而libm提供了浮点运算支持。
open-drain是漏极开路输出的意思,相当于集电极开路(open-collector)输出,即ttl中的集电极开路(oc)输出。
一般用于线或、线与,也有的用于电流驱动。
open-drain是对mos管而言,open-collector是对双极型管而言,在用法上没啥区别。
开漏形式的电路有以下几个特点:
(1)。 利用外部电路的驱动能力,减少IC内部的驱动。 或驱动比芯片电源电压高的负载。
(2)。可以将多个开漏输出的Pin,连接到一条线上。通过一只上拉电阻,在不增加任何器件的情况下,形成“与逻辑”关系。这也是I2C,SMBus等总线判断总线占用状态的原理。如果作为图腾输出必须接上拉电阻。接容性负载时,下降延是芯片内的晶体管,是有源驱动,速度较快;上升延是无源的外接电阻,速度慢。如果要求速度高电阻选择要小,功耗会大。所以负载电阻的选择要兼顾功耗和速度。
(3)。 可以利用改变上拉电源的电压,改变传输电平。例如加上上拉电阻就可以提供TTL/CMOS电平输出等。
(4)。 开漏Pin不连接外部的上拉电阻,则只能输出低电平。一般来说,开漏是用来连接不同电平的器件,匹配电平用的。
要对绝对地址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 是内核在系统内存中的第一条指令的地址。
ODT(On-die Termination,片内终结器)是内建核心的终结电阻器。
使用DDR SDRAM的主板上面为了防止数据线终端反射信号需要大量的终结电阻,它大大增加了主板的制造成本。实际上,不同的内存模组对终结电路的要求是不一样的,终结电阻的大小决定了数据线的信号比和反射率。因此主板上的终结电阻并不能非常好地匹配内存模组,还会在一定程度上影响信号品质。DDRII内建了终结电阻器,为DDRII带来了两个好处,一个是去掉了主板上的终结电阻器使主板的成本降低,也使PCB板的设计更加容易。第二个好处是终结电阻器可以和内存颗粒的“特性”相符,使DRAM处于最佳状态。
全部0条评论
快来发表一下你的评论吧 !