掉電復(fù)位,或電源電壓跌落復(fù)位,當(dāng)輸入電壓VCC跌到某一門限時芯片復(fù)位
TheMCUisresetwhenthesupplyvoltageVCCisbelowtheBrown-OutResetthresholdvoltage
andtheBrown-outDetectorisenabled.TheBrown-outthresholdvoltageisprogrammable.
2.Totem-pole
推拉輸出電路
3.IAR調(diào)試出現(xiàn)Thestackplug-infailedtosetabreakpointon"main".TheStackwindowwillnotbeabletodisplaystackcontents.(YoucanchangethissettingintheTool>Optionsdialogbox.)的警告,程序能燒進去,但不能調(diào)試。
需要進行如下配置:
iar->options->linker->output->format;
選擇Debuginformationforc-SPY選項
4.newlib
newlib是一個用于嵌入式系統(tǒng)的開放源代碼的C語言程序庫,由libc和libm兩個庫組成,特點是輕量級,速度快,可移植到很多CPU結(jié)構(gòu)上。newlib實現(xiàn)了許多復(fù)雜的功能,包括字符串支持,浮點運算,內(nèi)存分配(如malloc)和I/O流函數(shù)(printf,fprinf()等等)。其中l(wèi)ibc提供了c語言庫的實現(xiàn),而libm提供了浮點運算支持。
5.Open-drain
open-drain是漏極開路輸出的意思,相當(dāng)于集電極開路(open-collector)輸出,即ttl中的集電極開路(oc)輸出。
一般用于線或、線與,也有的用于電流驅(qū)動。
open-drain是對mos管而言,open-collector是對雙極型管而言,在用法上沒啥區(qū)別。
開漏形式的電路有以下幾個特點:
(1).利用外部電路的驅(qū)動能力,減少IC內(nèi)部的驅(qū)動。或驅(qū)動比芯片電源電壓高的負(fù)載.
(2).可以將多個開漏輸出的Pin,連接到一條線上。通過一只上拉電阻,在不增加任何器件的情況下,形成“與邏輯”關(guān)系。這也是I2C,SMBus等總線判斷總線占用狀態(tài)的原理。如果作為圖騰輸出必須接上拉電阻。接容性負(fù)載時,下降延是芯片內(nèi)的晶體管,是有源驅(qū)動,速度較快;上升延是無源的外接電阻,速度慢。如果要求速度高電阻選擇要小,功耗會大。所以負(fù)載電阻的選擇要兼顧功耗和速度。
(3).可以利用改變上拉電源的電壓,改變傳輸電平。例如加上上拉電阻就可以提供TTL/CMOS電平輸出等。
(4).開漏Pin不連接外部的上拉電阻,則只能輸出低電平。一般來說,開漏是用來連接不同電平的器件,匹配電平用的。
6.C語言中將絕對地址轉(zhuǎn)換為函數(shù)指針以及跳轉(zhuǎn)到內(nèi)存指定位置處執(zhí)行的技巧
要對絕對地址0x100000賦值,我們可以用
*(unsignedint*)0x100000=1234;
那么要是想讓程序跳轉(zhuǎn)到絕對地址是0x100000去執(zhí)行,應(yīng)該怎么做?
*((void(*)())0x100000)();
首先要將0x100000強制轉(zhuǎn)換成函數(shù)指針,即:
(void(*)())0x100000
然后再調(diào)用它:
*((void(*)())0x100000)();
用typedef可以看得更直觀些:
typedefvoid(*)()voidFuncPtr;
*((voidFuncPtr)0x100000)();
又如
如果用C語言,可以像下列示例代碼這樣來調(diào)用內(nèi)核:
void(*theKernel)(intzero,intarch,u32params_addr)
=(void(*)(int,int,u32))KERNEL_RAM_BASE;
……
theKernel(0,ARCH_NUMBER,(u32)kernel_params_start);
KERNEL_RAM_BASE是內(nèi)核在系統(tǒng)內(nèi)存中的第一條指令的地址。
7.OnDieTermination
ODT(On-dieTermination,片內(nèi)終結(jié)器)是內(nèi)建核心的終結(jié)電阻器。
使用DDRSDRAM的主板上面為了防止數(shù)據(jù)線終端反射信號需要大量的終結(jié)電阻,它大大增加了主板的制造成本。實際上,不同的內(nèi)存模組對終結(jié)電路的要求是不一樣的,終結(jié)電阻的大小決定了數(shù)據(jù)線的信號比和反射率。因此主板上的終結(jié)電阻并不能非常好地匹配內(nèi)存模組,還會在一定程度上影響信號品質(zhì)。DDRII內(nèi)建了終結(jié)電阻器,為DDRII帶來了兩個好處,一個是去掉了主板上的終結(jié)電阻器使主板的成本降低,也使PCB板的設(shè)計更加容易。第二個好處是終結(jié)電阻器可以和內(nèi)存顆粒的"特性"相符,使DRAM處于最佳狀態(tài)。