第001節(jié)輔線1硬件知識(shí)_內(nèi)存接口概念
首先來分析下操作GPIO控制器和操作UART控制器兩者的區(qū)別。
如圖是S3C2440是個(gè)片上系統(tǒng),有GPIO控制器(接有GPIO管腳),有串口控制器 (接有TXD RXD引腳)。
配置GPIO控制器相應(yīng)的寄存器,即可讓引腳輸出高低電平;配置UART控制器相應(yīng)的寄存器,即可讓引腳輸出波形。前者相對(duì)簡(jiǎn)單,類似門電路,后者相對(duì)復(fù)雜,屬于協(xié)議類接口。類似的協(xié)議類接口還有iic、iis、spi等。
對(duì)于CPU是不管什么接口的,它只寫相應(yīng)的寄存器,由控制器根據(jù)寄存器的配置去控制具體的引腳。
那么CPU是如何訪問各個(gè)不同的寄存器的呢?
CPU只管發(fā)出一個(gè)地址,內(nèi)存控制器根據(jù)該地址選擇不同的模塊,然后從模塊中得到數(shù)據(jù)或者發(fā)送數(shù)據(jù)到模塊中。
前面的GPIO/門電路接口、協(xié)議類接口,都不會(huì)把地址輸出到外部,接下來的內(nèi)存類接口,會(huì)把地址輸出到外部,比如Nor Flash、網(wǎng)卡、SDRAM。
如圖,SDRAM、DM9000網(wǎng)卡、Nor Flash都接在JZ2440的數(shù)據(jù)總線和地址總線上,CPU把數(shù)據(jù)和地址發(fā)送出去,然后內(nèi)存控制器根據(jù)片選信號(hào)選擇相應(yīng)的設(shè)備接收地址和數(shù)據(jù)信號(hào),互不干擾。
片選信號(hào)和地址的關(guān)系怎么確定?
這個(gè)是由2440芯片特性決定的。
當(dāng)選擇Nor Flash啟動(dòng)時(shí),CPU發(fā)出的指令的地址范圍處于0x0000000 - 0x06000000,內(nèi)存控制器就會(huì)使nGCS0處于低電平(片選引腳被選中),Nor Flash被選中。
當(dāng)CPU發(fā)出的指令的地址范圍處于0x20000000 - 0x26000000,內(nèi)存控制器就會(huì)使nGCS4處于低電平(片選引腳被選中),網(wǎng)卡被選中。
當(dāng)CPU發(fā)出的指令的地址范圍處于0x30000000 - 0x36000000,內(nèi)存控制器就會(huì)使nGCS6處于低電平(片選引腳被選中),SDRAM被選中。
內(nèi)存控制器根據(jù)不同的地址地址范圍,發(fā)出不同的片選引腳,只有被片選引腳選中的芯片才能正常工作,不被選中的芯片就像不存在一樣,不工作。
GPIO/門電路接口、協(xié)議類接口、內(nèi)存類接口都屬于CPU的統(tǒng)一編址。對(duì)于Nand Flash,在原理圖上它的地址線并沒有連接到CPU,因此它不參與CPU的統(tǒng)一編址。但它的數(shù)據(jù)線也接到了數(shù)據(jù)總線上,為了防止干擾,它也有一個(gè)片選信號(hào)(CE)。當(dāng)CPU訪問Nand Flash時(shí),Nand Flash控制器才會(huì)片選Nand Flash,讓其接收數(shù)據(jù)總線上的數(shù)據(jù)。
再來看下Nor Flash的空間,0x00000000 * 0x06000000,為128M,即每一個(gè)片選信號(hào)可以選擇的空間是128M=2^27,也就需要A0、A1……A26,共27根地址線。CPU發(fā)出的32位地址線,內(nèi)存控制器根據(jù)地址范圍,片選上相應(yīng)的bank,并將地址轉(zhuǎn)化為27位。
第002節(jié)輔線1硬件知識(shí)_不同位寬設(shè)備的連接
參考2440芯片手冊(cè),可以看到內(nèi)存接口與8-bit ROM連接時(shí),2440的A0與外部芯片的A0相連。
當(dāng)與兩個(gè)8-bit ROM拼接成的一個(gè)16-bit ROM連接時(shí),2440的A1與外部芯片的A0相連。
當(dāng)與四個(gè)8-bit ROM拼接成的一個(gè)32-bit ROM連接時(shí),2440的A2與外部芯片的A0相連。
當(dāng)與一個(gè)16-bit ROM連接時(shí),2440的A1與外部芯片的A0相連。
可以看出外接芯片的位寬有變化時(shí),地址線的接法也會(huì)有變化。那這個(gè)變化有什么規(guī)律呢?
假設(shè)CUP執(zhí)行:
MOV R0, #3 @去地址為3的內(nèi)存上
LDRB R1, [R0] @ 從內(nèi)存為3的地址上,讀出一個(gè)字節(jié)
如圖有8bitROM、16bitROM、32bitROM。
8個(gè)bit組成一個(gè)字節(jié),字節(jié)是計(jì)算機(jī)的最小的存儲(chǔ)單位,因此我們讀取數(shù)據(jù)肯定都是8bit的倍數(shù)。
* 對(duì)于8bitROM ,8bit是一次讀寫的最小單位,即0地址是第一個(gè)8bit,1地址是第二個(gè)8bit;CPU發(fā)出的命令是讀取地址為3上的數(shù)據(jù),即A0和A1都為1,8bitROM的A0和A1收到的也都是1,于是找到了ROM上地址為3的8bit數(shù)據(jù),包含了我們需要的數(shù)據(jù)。
* 對(duì)于16bitROM ,16bit是一次讀寫的最小單位,即0地址是第一個(gè)16bit,里面有兩個(gè)8bit數(shù)據(jù);CPU發(fā)出的命令是讀取地址為3上的數(shù)據(jù),即A0和A1都為1,16bitROM的A0和A1分別收到的是1和0,于是找到了ROM上地址為1的16bit數(shù)據(jù),包含了我們需要的數(shù)據(jù),最后內(nèi)存控制器再幫我們挑選出所需的8bit數(shù)據(jù)。
* 對(duì)于32bitROM ,32bit是一次讀寫的最小單位,即0地址是第一個(gè)32bit,里面有四個(gè)8bit數(shù)據(jù);CPU發(fā)出的命令是讀取地址為3上的數(shù)據(jù),即A0和A1都為0,32bitROM的A0和A1收到的都是0,于是找到了ROM上地址為0的32bit數(shù)據(jù),包含了我們需要的數(shù)據(jù),最后內(nèi)存控制器再幫我們挑選出所需的8bit數(shù)據(jù)。
接到芯片上的引腳用來確定讀取芯片上的哪一個(gè)單元的數(shù)據(jù),把這個(gè)單元的數(shù)據(jù)返回給內(nèi)存控制器,內(nèi)存控制器會(huì)根據(jù)沒有連接芯片的引腳,來確定返回哪一個(gè)單元的數(shù)據(jù)給CPU,
再舉一個(gè)例子:
假如傳遞一個(gè)32位的數(shù)據(jù)時(shí)
MOV R0, #4
LDR R1, [R0] @去地址4,讀取4字節(jié)數(shù)據(jù)
執(zhí)行過程如下:
8bitROM: 當(dāng)CPU發(fā)出地址(000100),內(nèi)存控制器會(huì)把000100,000101,000110,000111處的地址轉(zhuǎn)發(fā)給ROM,ROM會(huì)把得到的地址000100,000101,000110,000111,上的數(shù)據(jù)返回給內(nèi)存控制器,內(nèi)存控制器會(huì)把得到的4個(gè)8bit的數(shù)據(jù)組裝成一個(gè)32位的數(shù)據(jù)返回給CPU。
16bitROM: 當(dāng)CPU發(fā)出地址(000100),內(nèi)存控制器會(huì)把00010,00011處的地址轉(zhuǎn)發(fā)給ROM,ROM會(huì)把得到的地址00010,00011,上的數(shù)據(jù)返回給內(nèi)存控制器,內(nèi)存控制器會(huì)把得到的2個(gè)16bit的數(shù)據(jù)組裝成一個(gè)32位的數(shù)據(jù)返回給CPU。
32bitROM: 當(dāng)CPU發(fā)出地址(000100),內(nèi)存控制器會(huì)把0001處的地址發(fā)送給ROM,ROM會(huì)把得到的地址0001上的數(shù)據(jù)返回給內(nèi)存控制器,內(nèi)存控制器會(huì)把得到的1個(gè)32bit數(shù)據(jù)返回給CPU。
怎樣確定芯片的訪問地址:
1.根據(jù)片選信號(hào)確定基地址,
2.根據(jù)芯片所接地址線確定范圍
實(shí)例:
Nor Flash 使用的是片選0(nGCS0),基地址為0,用到A20,A19……A1,A0共21條地址線,所以地址范圍為0x00000000 ~ 0x1FFFFF也就是2M的空間大小。
網(wǎng)卡(Net)使用的是片選4(nGCS4),基地址為0x20000000,用到A2,A0共2根地址線,所以地址范圍為0x20000000 ~ 0x20000005。
SDRAM使用的是片選6(nGCS6),基地址為0x30000000。
第003節(jié)輔線1硬件知識(shí)_時(shí)序圖分析示例
這節(jié)我們分析一下我們了解時(shí)序圖,信號(hào)之間是怎樣一起工作的,以Nor Flash 為例。
2440和Nor Flash 之間有地址線,數(shù)據(jù)線,還有各種數(shù)據(jù)線連接。
以Nor Flash為例,分析下如何設(shè)置它的時(shí)序。
如圖是S3C2440的Nor Flash控制器的讀時(shí)序圖,里面很多參數(shù)都需要根據(jù)外接芯片的性能進(jìn)行設(shè)置,有的芯片性能好、響應(yīng)時(shí)間快,就可以把參數(shù)時(shí)間設(shè)置小一點(diǎn),釋放更好的性能。
如圖是Nor Flash芯片的讀時(shí)序。
我們需要做的就是設(shè)置S3C2440的Nor Flash控制器時(shí)序去滿足Nor Flash芯片的時(shí)序。每個(gè)參數(shù)的參考范圍可以通過AC CHARACTERISTICS得到。
結(jié)合Nor Flash芯片的兩張圖,可以得到如下信息:
發(fā)出地址數(shù)據(jù)(Addresses)后,要等待Taa(要求大于等于70ns)時(shí)間,地址數(shù)據(jù)才有效;
發(fā)出片選信號(hào)(CE#)后,要等待Tce(要求大于等于70ns)時(shí)間,片選信號(hào)才有效;
發(fā)出讀信號(hào)(OE#)后要等待Toe(要求大于等于30ns)時(shí)間,讀信號(hào)才有效;
為了簡(jiǎn)單我們把地址數(shù)據(jù)(Addresses),片選信號(hào)(CE#),讀信號(hào)(OE#),同時(shí)發(fā)出,然后讓它們都等待70ns(等待信號(hào)有效)。對(duì)應(yīng)S3C2440的Nor Flash控制器的讀時(shí)序圖,需要讓地址信號(hào)A[24:0]、片選信號(hào)nGCS、讀信號(hào)nOE同時(shí)發(fā)出,保持Tacc大于等于70ns。
查閱S3C2240的參考手冊(cè),Nor Flash是接在BANKCON0上的,因此只需要設(shè)置BANKCON0即可。
可以看到Tacc上電初始值是111,對(duì)應(yīng)14個(gè)clocks。系統(tǒng)上電采用12MHz的晶振,HCLK=12MHz,Tacc=(1000/12*14)≈1166ns,這個(gè)值很大,幾乎可以滿足所有Nor Flash的要求。
啟動(dòng)后,將HCLK設(shè)置為100MHz,T=1000/100=10ns,Tacc需要大于等于70ns,因此設(shè)置Tacc等于101,8個(gè)clocks即可。
在前面uart實(shí)驗(yàn)的源碼基礎(chǔ)上,新建init.c和init.h兩個(gè)文件。
在init.c里面只需要設(shè)置BANKCON0寄存器即可。
#include "s3c2440_soc.h"
void bank0_tacc_set(int val)
{
BANKCON0 = val << 8;
}
init.h進(jìn)行函數(shù)聲明。
#ifndef _INIT_H
#define _INIT_H
void bank0_tacc_set(int val);
#endif
最后在主函數(shù)里面,通過串口獲取輸入的值,傳入bank0_tacc_set()函數(shù)里,設(shè)置Tacc,然后再讀取Nor Flash上的閃燈程序。
#include "s3c2440_soc.h"
#include "uart.h"
#include "init.h"
int main(void)
{
unsigned char c;
uart0_init();
puts("Enter the Tacc val: nr");
while(1)
{
c = getchar();
putchar(c);
if (c >= '0' && c <= '7')
{
bank0_tacc_set(c - '0');
led_test();
}
else
{
puts("Error, val should between 0~7nr");
puts("Enter the Tacc val: nr");
}
}
return 0;
}
實(shí)驗(yàn)效果:
輸入0~4,Tacc小于70ns,無法讀取Nor Flash上數(shù)據(jù),LED不能閃爍。
輸入4~7,Tacc大于70ns,可以讀取Nor Flash上數(shù)據(jù),LED不斷閃爍,且值越小越快(區(qū)別不明顯)。
第004節(jié)輔線1硬件知識(shí)_SDRAM的設(shè)置
本節(jié)將講解如何設(shè)置SDRAM,如果想對(duì)內(nèi)存有更多的了解,可以在網(wǎng)上搜索看下這篇文檔“高手進(jìn)階_終極內(nèi)存技術(shù)指南——完整/進(jìn)階版”。
在JZ2440上接有64M的SDRAM,如果想要使用SDRAM,需要對(duì)內(nèi)存控制器做一些設(shè)置。
在前面第一節(jié)講到,CPU將數(shù)據(jù)或地址發(fā)給內(nèi)存控制器,內(nèi)存控制器再去訪問外部的SDRAM,因此設(shè)置內(nèi)存控制器就說本節(jié)的核心。
如圖是SDRAM存儲(chǔ)結(jié)構(gòu)邏輯圖:
SDRAM總共有4個(gè)塊(Banks),可以認(rèn)為每個(gè)塊就是一個(gè)表格,里面的每個(gè)格子表示的是16bit數(shù)據(jù)。
問題1:怎樣訪問里面的某個(gè)格子呢?
首先發(fā)出一個(gè)片選信號(hào),選中整個(gè)芯片;
發(fā)出Bank地址,選擇是哪一個(gè)Bank(塊,即表格);
發(fā)出行地址;
最后發(fā)出列地址,才能選中是個(gè)格子;
問題2:那么多的信號(hào)有誰發(fā)出呢?
由內(nèi)存控制器發(fā)出,所以我們需要設(shè)置內(nèi)存控制器,CPU只是簡(jiǎn)單的執(zhí)行讀寫內(nèi)存的命令,其他的都交給內(nèi)存控制起來處理。
例如
LDR R0,=0x30000000
LDR R1,[R0]
CPU把0x30000000這個(gè)地址發(fā)給內(nèi)存控制器,內(nèi)存控制器根據(jù)這個(gè)地址,判斷屬于哪個(gè)范圍,然后發(fā)出相應(yīng)的片選信號(hào)。
根據(jù)類型(比如SDRAM)拆分成三部分:發(fā)出Bank地址、發(fā)出行地址、發(fā)出列地址。
對(duì)于上面的三個(gè),怎樣拆分呢?
行地址線有幾條,列地址線有幾條,都要設(shè)置內(nèi)存控制器里面相關(guān)寄存器。
讀數(shù)據(jù)
綜上所述:對(duì)SDRAM的訪問可以分為如下步:
CPU發(fā)出的片選信號(hào)nSCS6有效,它選中SDRAM芯片。
SDRAM中有4個(gè)L-Bank,需要兩根地址信號(hào)來選中其中之一,根據(jù)原理圖,可知使用ADDR24,ADDR25作為L(zhǎng)-Bank的選擇信號(hào)。
對(duì)被選中的芯片進(jìn)行統(tǒng)一的行/列(存儲(chǔ)單元)尋址。
根據(jù)SDRAM芯片的列地址線數(shù)目設(shè)置CPU的相關(guān)寄存器后,CPU就會(huì)從32位的地址中自動(dòng)分出L_Bank片選信號(hào),行地址信號(hào),列地址信號(hào),然后先后發(fā)出行地址信號(hào),列地址信號(hào)。L_Bank選擇信號(hào)在發(fā)出行地址信號(hào)的同時(shí)發(fā)出,并維持到列地址信號(hào)結(jié)束。
根據(jù)原理圖可知:
地址、列地址共用地線ADDR2—ADDRI4(BANK6位寬為32,ADDRO/I沒有使用),使用nSRAS、nSCAS兩個(gè)信號(hào)來區(qū)分它們。
比如本開發(fā)板中,使用兩根地址線ADDR24、ADDR25作為L(zhǎng)-Bank的選擇信號(hào):SDRAM芯片K4s5m632的行地址數(shù)為13,列地址數(shù)為9,所以當(dāng)nSRAS信號(hào)有時(shí),ADDR2—ADDR14上發(fā)出是行地址信號(hào),它對(duì)應(yīng)32位地址空間的b可23m]:當(dāng)nSCAS信號(hào)有效時(shí),ADDR2—ADDR10上發(fā)出的是列地址信號(hào),它對(duì)應(yīng)32位地址空間的bit[0:2];由于BANK6以32位的寬度外接DRAM,ADDR0、ADDR1恒為0,不參與譯碼。
找到了存儲(chǔ)單元后,被選中的芯片就要進(jìn)行統(tǒng)一的數(shù)據(jù)傳輸了。
開發(fā)板中使用兩片16位的SDRAM芯片并聯(lián)組成32位的位寬,與CPU的32根數(shù)據(jù)線(DATA0—DATA31)相連。
BANK6的起始地址為0x30000000,所以SDRAM的訪問地址為0x30000000~低0x33FFFFFF,共64MB。
2440內(nèi)存控制器設(shè)置:
內(nèi)存控制器共有13個(gè)寄存器,
BANK0–BANK5只需要設(shè)置BWSCON和BANKCONx(x為0~5)兩個(gè)寄存器;
BANK6、BANK7外接SDRAM時(shí),除BWSCON和BANKCONx(x為6、7)外,還要設(shè)置REFRESH、BANKSIZE、MRSRB6、MRSRB7等4個(gè)寄存器。
下面分類說明各個(gè)寄存起的設(shè)置。
1.位寬和等待控制寄存器BWSCON(BUSWIDTH&WAITCONTROLREGISTER)
BWSCON中每4位控制一個(gè)BANK,最高4位對(duì)應(yīng)BANK7(沒有使用)、接下來4位對(duì)應(yīng)BANK6。
(1)ST6[27]: 啟動(dòng)/禁止SDRAM的數(shù)據(jù)掩碼引腳,對(duì)于SDRAM,此位為0:對(duì)于SRAM此位為1。
(2)WS6[26]:是否使用存儲(chǔ)器的WAIT信號(hào),通常設(shè)為0。
(3)DW6[25:24]:使用兩位來設(shè)置相應(yīng)BANK的位寬,0b00對(duì)應(yīng)8位,0b01對(duì)應(yīng)16位,0b10對(duì)應(yīng)32位(開發(fā)板用的就是32位的),0b11表示保留。
因此BWSCON寄存器的值為:0x22000000。
2.BANK控制寄存器BANKCON6(BANKCONTROLREGISTER)
在8個(gè)BANK中,只有BANK6和BANK7可以外接SRAM或SDRAM。
(1)MT[16:15]:用于設(shè)置本BANK外接的是ROM/SRAM還是SDRAM,SRAM:0b00,SDRAM:0b11(開發(fā)板使用的是SDRAM)。
當(dāng)MT[16:15]設(shè)置為00時(shí),此寄存器與BANKC0N0、BANKCON5類似,不再贅述。
當(dāng)MT[16:15]設(shè)置為11時(shí),此寄存器其他值如下設(shè)置。
(2)Trcd[3:2]:行地址和列地址間隔多長(zhǎng)時(shí)間,看芯片手冊(cè)時(shí)間間隔是20ns,本來開發(fā)板的HCLK是100MHZ,clocks為10ns,所以設(shè)置為推薦值0b00(2clocks)。
(3)SCAN[1:0]:SDRAM的列地址位數(shù),對(duì)于本開發(fā)板使用的SDRAMK4S561632。列地址位數(shù)為9,所以SCAN=0b010如果使用其他型號(hào)的SDRAM,需要查看其數(shù)據(jù)手冊(cè)。來決定SCAN的取值。0b00表示8位,0b01表示9位,0b10表示10位。
綜上所述,本開發(fā)板中BANKCON6設(shè)為0x017001。
3.刷新控制寄存器REFRESH(REFRESHCONTROLREGISTER)
(1)REFEN[23]:0=禁止SDRAM的刷新功能,1:開啟SDRAM的刷新功能(設(shè)置開啟SDRAM的刷新功能)。
(2)TREFMD[22]:SDRAM的刷新模式,0=CBR/AutoRefresh,1=SelfRefresh(一般在系統(tǒng)休眠時(shí)使用),我們?cè)O(shè)置默認(rèn)值。
(3)Trp[21:20):根據(jù)芯片手冊(cè)設(shè)為0即可。
(4)Tsrc[19:18]:根據(jù)芯片手冊(cè)設(shè)為默認(rèn)值0b01即可。
(5)RefreshCounter[10:0]:即R_CNT
R_CNT可如下汁算(SDRAM時(shí)鐘頻率就是HCLK):
R_CNT=2^11+1-SDRAM時(shí)鐘頻率(MZ)*SDRAM刷新周期(us)
SDRAM的刷新周期在SDRAM的數(shù)據(jù)手冊(cè)上有標(biāo)明,在本開發(fā)板使用的SDRAM:K4S561632的數(shù)據(jù)手冊(cè)上,可看見這么一行“64msrefreshpenod(8KCycle)所以,刷新周期=64ms/8192=7.8125us。
Refreshcount=2^11+1-100x7.8=1269=0x4F5。
因此,本開發(fā)板中REFRESH設(shè)為0x8404F5。
4.BANKSIZE寄存器REFRESH(BANKSIZEREG ISTER)
(1)BURST_EN[7]:0=ARM核禁上突發(fā)傳輸,1=ARM核支持突發(fā)傳輸(推薦);
(2)SCKEEN[5]:0=不使用SCKE信號(hào)令SDRAM進(jìn)入省電模式,1=使用SCKE信號(hào)令SDRAM進(jìn)入省電模式(推薦);
(3)SCLK-EN[4]:0=時(shí)刻發(fā)出SCLK信號(hào),1=僅在訪問SDRAM期間發(fā)出SCLK信號(hào)(推薦);
(4)BK76MAP[2:0]:設(shè)置BANK6的大小。本開發(fā)板BANK6外接64MB的SDRAM,令[2:0]=b001(64M/64M),表示BANK6/7的容量都是64MB,雖然BANK7沒有使用。
因此,本開發(fā)板中BANKSIZE設(shè)為0xB1。
5.SDRAM模式設(shè)置寄存器MRSRBx6(SDRAM MODE REGISTER SET REGISTER)
能修改的只有位CL[6:4],這是SDRAM時(shí)序的一個(gè)時(shí)間參數(shù),表示發(fā)出行、列地址后,等多久才返回收到數(shù)據(jù),
CL可以取值為0b0l0(2 clocks)或0b011(3 clocks)。
本開發(fā)板取最保守的值0b010,所以MRSRB6的值為0x20。
下面開始寫程序:
在init.c里面進(jìn)行對(duì)內(nèi)存控制器的寄存器依次進(jìn)行設(shè)置:
void sdram_init(void)
{
BWSCON = 0x22000000;
BANKCON6 = 0x17001;
BANKCON7 = 0x17001;
REFRESH = 0x8404f5;
BANKSIZE = 0xb1;
MRSRB6 = 0x20;
MRSRB7 = 0x20;
}
再寫一個(gè)測(cè)試函數(shù),向SDRAM里面連續(xù)寫1000個(gè)數(shù),再讀出數(shù)據(jù)對(duì)比是否是設(shè)置的數(shù),返回對(duì)比結(jié)果:
int sdram_test(void)
{
volatile unsigned char *p = (volatile unsigned char *)0x30000000;
int i;
// write sdram
for (i = 0; i < 1000; i++)
p[i] = 0x55;
// read sdram
for (i = 0; i < 1000; i++)
if (p[i] != 0x55)
return -1;
return 0;
}
在主函數(shù)里調(diào)用sdram_test()測(cè)試函數(shù),如果測(cè)試成功,LED閃爍:
int main(void)
{
uart0_init();
sdram_init();
if (sdram_test() == 0)
led_test();
return 0;
}
實(shí)驗(yàn)結(jié)果:
LED按預(yù)期閃爍,屏蔽掉sdram_init()后,LED不閃爍。
上一篇:第011課 Jz2400串口(UART)的使用
下一篇:第013課 S3c2440代碼重定位詳解
推薦閱讀
史海拾趣
為了拓展國際市場(chǎng),ENSIGN與韓國Feelux成立合資公司Feelux Shanghai,共同為高端品牌提供更專業(yè)的服務(wù)。這一舉措不僅增強(qiáng)了ENSIGN的品牌影響力,還為公司帶來了更多的商業(yè)機(jī)會(huì)。同時(shí),ENSIGN還成為了Coelux的中國區(qū)經(jīng)銷商,進(jìn)一步擴(kuò)大了其在國際市場(chǎng)的份額。
ENSIGN的前身Skylight于1998年在上海成立,專注于商業(yè)照明領(lǐng)域。隨著市場(chǎng)需求的增長(zhǎng),公司于2003年正式更名為ENSIGN,并開始為零售店鋪提供全面的商業(yè)照明解決方案。ENSIGN憑借其創(chuàng)新的設(shè)計(jì)和高質(zhì)量的產(chǎn)品,逐漸在市場(chǎng)中樹立了良好的口碑。
ENSIGN不僅局限于照明領(lǐng)域,還積極向能源服務(wù)領(lǐng)域拓展。近年來,ENSIGN通過技術(shù)創(chuàng)新和戰(zhàn)略合作,為客戶提供定制化的電源解決方案。例如,在2009年,ENSIGN建成了新的工廠,并與多家本地供應(yīng)、裝配和測(cè)試組織建立了合作關(guān)系,以提供更高質(zhì)量、更可靠的產(chǎn)品和服務(wù)。
為了拓展國際市場(chǎng),ENSIGN與韓國Feelux成立合資公司Feelux Shanghai,共同為高端品牌提供更專業(yè)的服務(wù)。這一舉措不僅增強(qiáng)了ENSIGN的品牌影響力,還為公司帶來了更多的商業(yè)機(jī)會(huì)。同時(shí),ENSIGN還成為了Coelux的中國區(qū)經(jīng)銷商,進(jìn)一步擴(kuò)大了其在國際市場(chǎng)的份額。
ENSIGN在資本市場(chǎng)上的表現(xiàn)也備受關(guān)注。近年來,ENSIGN的股價(jià)穩(wěn)步上漲,市值不斷擴(kuò)大。多家投資機(jī)構(gòu)對(duì)ENSIGN的前景表示樂觀,并上調(diào)了其目標(biāo)股價(jià)。ENSIGN憑借其穩(wěn)健的財(cái)務(wù)表現(xiàn)、強(qiáng)大的研發(fā)能力和廣闊的市場(chǎng)前景,吸引了眾多投資者的關(guān)注。
這些故事概述了ENSIGN在電子行業(yè)中的發(fā)展歷程和多元化戰(zhàn)略。通過不斷創(chuàng)新和拓展業(yè)務(wù)領(lǐng)域,ENSIGN逐漸成為了電子行業(yè)中備受矚目的企業(yè)之一。
Empro Technology Corp成立于2005年,由一群熱衷于電子技術(shù)的工程師創(chuàng)立。在初創(chuàng)階段,公司專注于研發(fā)高效能、低功耗的半導(dǎo)體芯片。經(jīng)過數(shù)年的不懈努力,公司成功推出了一款具有顛覆性技術(shù)的芯片產(chǎn)品,其性能遠(yuǎn)超當(dāng)時(shí)市場(chǎng)上的同類產(chǎn)品,迅速獲得了市場(chǎng)的認(rèn)可。
引言 雖然計(jì)算機(jī)通信的方法和手段多種多樣,但都必須依靠數(shù)據(jù)通信技術(shù)。數(shù)據(jù)通信就是將數(shù)據(jù)信號(hào)加到數(shù)據(jù)傳輸信道上進(jìn)行傳輸,并在接收點(diǎn)將原始發(fā)送的數(shù)據(jù)正確地恢復(fù)過來。由于計(jì)算機(jī)產(chǎn)生的一般都是數(shù)字信號(hào),因此計(jì)算機(jī)之間的通信實(shí)際上都屬于數(shù) ...… 查看全部問答∨ |
|
關(guān)天wince6.0 media player的問題 我在定制內(nèi)核時(shí)加入了windows media player 播放影片時(shí),出現(xiàn)半透明播放(可以看得見windows背景) 請(qǐng)各位大俠指點(diǎn)下! … 查看全部問答∨ |
VB中MSCOMM控件實(shí)現(xiàn)串行通信的問題 PC機(jī)與單片機(jī)串行通信。我遇到的問題:發(fā)數(shù)據(jù)少于8個(gè),能正確接收,漢字少于4個(gè),能正確接收;若發(fā)多了,只能收到8個(gè)數(shù),漢字只能收4到個(gè),而且接收區(qū)不能連續(xù)顯示。用串口調(diào)試工具驗(yàn)證單片機(jī)中程序沒錯(cuò),我用的是VB企業(yè)版中的MSCOMM控件,程序代碼 ...… 查看全部問答∨ |
Source Insight 中怎么才能讓中文注釋之間沒有空格呢? 如題: 用Source Install寫代碼的時(shí)候,中文注釋的每個(gè)漢字間都會(huì)有一個(gè)空格,請(qǐng)問這個(gè)空格怎么才能去掉呢,在選項(xiàng)里面能改嗎? 還有一個(gè)問題: 我發(fā)現(xiàn)這個(gè)軟件即使你沒有包含在它的工程里面的文件也是能看到的,但是我還發(fā)現(xiàn)用結(jié)構(gòu)體名定義的結(jié)構(gòu)變量 ...… 查看全部問答∨ |
led用LED芯片上涂敷熒光粉而實(shí)現(xiàn)白光發(fā)射。 LED采用熒光粉實(shí)現(xiàn)白光主要有三種方法,但它們并沒有完全成熟,由此嚴(yán)重地影響白光LED在照明領(lǐng)域的應(yīng)用。具體來說,第一種方法是在藍(lán)色LED芯片 上涂敷能被藍(lán)光激發(fā)的黃色熒光粉,芯片發(fā)出的藍(lán)光與熒光粉 ...… 查看全部問答∨ |
我用的是友善之臂的MicroS3C2440開發(fā)板,想運(yùn)行一個(gè)Linux系統(tǒng),但是在第一步格式化NandFlah的時(shí)候卻出現(xiàn)大面積分區(qū)壞的問題,不知如何解決? [ 本帖最后由 zhangle0922 于 2011-5-12 12:37 編輯 ]… 查看全部問答∨ |
用單芯線來做簡(jiǎn)易的433MHz天線,除了接口阻抗匹配外,天線直徑大小對(duì)發(fā)射功率大小有何影響呢?比如0.6mm,0.8mm,1.0mm… 查看全部問答∨ |
公開征集DIY數(shù)控電源相關(guān)器件的供貨信息 為了實(shí)現(xiàn)DIY數(shù)控電源更好的可用性及美化美觀,現(xiàn)公開征集以下器件的供應(yīng)商,也歡迎網(wǎng)友們提供相關(guān)信息: 1、單鍵飛梭成品 注塑件、結(jié)構(gòu)件、電氣件齊全,可以直接裝機(jī)使用 2、光電旋鈕/編碼器 作為單鍵飛梭的替代,帶塑膠旋鈕和緊固件 ...… 查看全部問答∨ |
轉(zhuǎn):TI轉(zhuǎn)投嵌入領(lǐng)域:移動(dòng)芯片成寡頭游戲 面對(duì)快速增長(zhǎng)的智能手機(jī)芯片領(lǐng)域,德州儀器為何要抽身而退? 德儀中國區(qū)相關(guān)人士對(duì)筆者稱,去年11月,德儀就宣布將削減成本,把對(duì)無線業(yè)務(wù)的投資集中于嵌入式市場(chǎng),因?yàn)榍度胧绞袌?chǎng)具有更持久的發(fā)展?jié)摿Α! ∽咭苿?dòng)領(lǐng)域 2007年以前,德 ...… 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 基于GPS自動(dòng)授時(shí)的無線智能控制器的設(shè)計(jì)
- 基于PTR2000的無線氣象信息采集系統(tǒng)設(shè)計(jì)
- Microchip推出MEC175xB系列器件,為嵌入式控制器引入硬件 抗量子攻擊能力
- 無人飛行器機(jī)載穩(wěn)定云臺(tái)控制系統(tǒng)的設(shè)計(jì)
- 匠芯創(chuàng)推出面向具身智能高性能實(shí)時(shí)處理器M7000
- 基于HW2181B的航模無線遙控通信系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 應(yīng)對(duì)機(jī)器人“四高”,極海推出全球首款雙核Cortex-M52 MCU G32R501
- 非道路移動(dòng)機(jī)械透射式煙度計(jì)研究與實(shí)現(xiàn)
- 基于STM32F103的角磨機(jī)開關(guān)磁阻電機(jī)控制器的設(shè)計(jì)
- 柔電院研發(fā)出新型仿生“電子皮膚”解決機(jī)器人三維觸覺力感知
- 意法半導(dǎo)體推出新慣性測(cè)量單元 將活動(dòng)追蹤和高沖擊力傳感技術(shù)相集成
- 韓國研究人員開發(fā)出互鎖電極系統(tǒng) 使硅電池壽命突破極限
- 突破性進(jìn)展!國軒高科全固態(tài)邁入預(yù)量產(chǎn),準(zhǔn)固態(tài)劍指千公里續(xù)航
- 昆泰芯:讓人形機(jī)器人身手更矯健
- 華為再落子,機(jī)器人賽道“暗流涌動(dòng)”
- 從TARA看汽車信息安全之痛:為何安全需求總在"優(yōu)先級(jí)排序"中敗北?
- “中央+區(qū)域架構(gòu)”重構(gòu)汽車芯片,誰將成為下一個(gè)“霸主”?
- 《汽車駕駛自動(dòng)化分級(jí)》會(huì)更適合中國自動(dòng)駕駛發(fā)展嗎?
- 備考!AEB「強(qiáng)標(biāo)」倒計(jì)時(shí)
- 電源小課堂—AC/DC電源設(shè)計(jì)的選型
- 帶你零起點(diǎn)入門STM32(專為嵌入式應(yīng)用而開發(fā)的內(nèi)核)
- 邀你參加:EEWORLD&ST 智能產(chǎn)品線下研討會(huì)(12月6日-深圳)
- ADI有獎(jiǎng)下載活動(dòng)之11 ADI鋰電池測(cè)試設(shè)備解決方案
- 雙重好禮等你來!2022年,讓英飛凌更懂你!
- 【泰有聊】第二期:泰克CEO為你解讀低噪聲背后的科學(xué)
- 有獎(jiǎng)活動(dòng)|登陸泰克高精度電源測(cè)試知識(shí)星球,揭開噪聲的迷霧,發(fā)現(xiàn)真實(shí)的信號(hào)!
- 51單片機(jī) (6)串口中斷通信+定時(shí)器2串口中斷
- 高速放大器測(cè)試需要足夠多的數(shù)學(xué)知識(shí)來正確使用巴倫
- STM32單片機(jī)(1) 總記 學(xué)習(xí)資料+參考手冊(cè)+LED燈
- 從單打獨(dú)斗到組團(tuán)打怪,無線技術(shù)將加速物聯(lián)網(wǎng)落地
- STM32單片機(jī)(2) 外部中斷
- 5G基站/消費(fèi)電子等市場(chǎng)需求強(qiáng)勁 PCB/覆銅箔板量?jī)r(jià)均升
- 駿成科技實(shí)控人夫妻控股超95% 左分紅右募資被指“圈錢“
- 中芯國際與阿斯麥修訂采購協(xié)議,30%產(chǎn)業(yè)鏈廠商去年凈利增
- 國開行或加大對(duì)集成電路等投資力度,中芯國際熱點(diǎn)不斷
- 中國科學(xué)院周玉梅:加強(qiáng)研發(fā)破解芯片技術(shù)“卡脖子”問題
- 有誰是用mage系列的單片機(jī)?
- MOSFET及MOSFET驅(qū)動(dòng)電路總結(jié)
- CCSv4_userguide
- 請(qǐng)教各位高手:搖桿電位器控制4個(gè)直流電機(jī)雙向調(diào)速
- 【 XMC4800 Relax EtherCAT Kit測(cè)評(píng)】+freertos實(shí)時(shí)系統(tǒng)使用
- 坐標(biāo)東莞,月薪8K-10K,求全職電子工程師(家電)一枚!
- ...........................
- 可潤(rùn)濕側(cè)翼Q F N封裝對(duì)于汽車應(yīng)用的價(jià)值所在
- 【轉(zhuǎn)】《致我們終將逝去的青春》你有沒有真正看懂呢?
- 畢設(shè)vxworks和workbench玩不轉(zhuǎn),請(qǐng)教各位