日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]從NandFlash啟動(dòng)CPU的時(shí)候,CPU會(huì)自動(dòng)通過(guò)其內(nèi)部硬件結(jié)構(gòu)復(fù)制NandFlash中的前4K代碼到cpu的自帶SRAM中,注意這是CPU自帶的SRAM,區(qū)別于本文所講的SDRAM,本文所指的SDRAM是外接SDRAM,開(kāi)發(fā)板對(duì)應(yīng)的芯片為K4S561632,

從NandFlash啟動(dòng)CPU的時(shí)候,CPU會(huì)自動(dòng)通過(guò)其內(nèi)部硬件結(jié)構(gòu)復(fù)制NandFlash中的前4K代碼到cpu的自帶SRAM中,注意這是CPU自帶的SRAM,區(qū)別于本文所講的SDRAM,本文所指的SDRAM是外接SDRAM,開(kāi)發(fā)板對(duì)應(yīng)的芯片為K4S561632,即內(nèi)存。

一般來(lái)說(shuō),嵌入式系統(tǒng)都有NandFlash(硬盤)和SDRAM(內(nèi)存),我們把程序燒到NanFlash中,然后選擇從NandFlash啟動(dòng)CPU,CPU啟動(dòng)后會(huì)自動(dòng)復(fù)制NandFlash中前4K代碼到CPU的SRAM中,這前4K代碼接著完成程序從NandFlash復(fù)制到SDRAM的任務(wù)。

參考韋東山大哥的書(shū),做了sdram的實(shí)驗(yàn):

(1)head.S,這個(gè)是最關(guān)鍵的,設(shè)置SDRAM控制器,來(lái)控制外部SDRAM即:K4S561632,然后把程序放在這個(gè)芯片里執(zhí)行的。

@*************************************************************************
@ File:head.S
@ 功能:設(shè)置SDRAM,將程序復(fù)制到SDRAM,然后跳到SDRAM繼續(xù)執(zhí)行
@*************************************************************************

.equMEM_CTL_BASE,0x48000000
.equSDRAM_BASE,0x30000000

.text
.global _start
_start:
bldisable_watch_dog @ 關(guān)閉WATCHDOG,否則CPU會(huì)不斷重啟
blmemsetup @ 設(shè)置存儲(chǔ)控制器
blcopy_steppingstone_to_sdram @ 復(fù)制代碼到SDRAM中
ldr pc,=on_sdram @ 跳到SDRAM中繼續(xù)執(zhí)行
on_sdram:
ldr sp,=0x34000000 @ 設(shè)置堆棧
blmain
halt_loop:
b halt_loop

disable_watch_dog:
@ 往WATCHDOG寄存器寫0即可
movr1,#0x53000000
movr2,#0x0
strr2,[r1]
movpc,lr @ 返回

copy_steppingstone_to_sdram:
@ 將Steppingstone的4K數(shù)據(jù)全部復(fù)制到SDRAM中去
@ Steppingstone起始地址為0x00000000,SDRAM中起始地址為0x30000000

movr1,#0
ldr r2,=SDRAM_BASE
movr3,#4*1024
1:
ldr r4,[r1],#4 @ 從Steppingstone讀取4字節(jié)的數(shù)據(jù),并讓源地址加4
strr4,[r2],#4 @ 將此4字節(jié)的數(shù)據(jù)復(fù)制到SDRAM中,并讓目地地址加4
cmpr1,r3 @ 判斷是否完成:源地址等于Steppingstone的未地址?
bne 1b @ 若沒(méi)有復(fù)制完,繼續(xù)
movpc,lr @ 返回

memsetup:
@ 設(shè)置存儲(chǔ)控制器以便使用SDRAM等外設(shè)

movr1,#MEM_CTL_BASE @ 存儲(chǔ)控制器的13個(gè)寄存器的開(kāi)始地址
adrl r2,mem_cfg_val @ 這13個(gè)值的起始存儲(chǔ)地址
addr3,r1,#52 @ 13*4=54
1:
ldr r4,[r2],#4 @ 讀取設(shè)置值,并讓r2加4
strr4,[r1],#4 @ 將此值寫入寄存器,并讓r1加4
cmpr1,r3 @ 判斷是否設(shè)置完所有13個(gè)寄存器
bne 1b @ 若沒(méi)有寫成,繼續(xù)
movpc,lr @ 返回


.align4
mem_cfg_val:
@ 存儲(chǔ)控制器13個(gè)寄存器的設(shè)置值
.long 0x22011110 @ BWSCON
.long 0x00000700 @ BANKCON0
.long 0x00000700 @ BANKCON1
.long 0x00000700 @ BANKCON2
.long 0x00000700 @ BANKCON3
.long 0x00000700 @ BANKCON4
.long 0x00000700 @ BANKCON5
.long 0x00018005 @ BANKCON6
.long 0x00018005 @ BANKCON7
.long 0x008C07A3 @ REFRESH
.long 0x000000B1 @ BANKSIZE
.long 0x00000030 @ MRSRB6
.long 0x00000030 @ MRSRB7

(2)leds.c


#defineGPFCON(*(volatileunsignedlong*)0x56000050)
#defineGPFDAT(*(volatileunsignedlong*)0x56000054)
#defineGPFUP (*(volatileunsignedlong*)0x56000058)

#defineGPF0_out(1<<(0*2))
#defineGPF1_out(1<<(1*2))
#defineGPF2_out(1<<(2*2))
#defineGPF3_out(1<<(3*2))

voidwait(unsignedlongdly)
{
for(;dly>0;dly--);
}

intmain(void)
{
int i=0;
GPFCON=GPF1_out|GPF2_out|GPF3_out|GPF0_out;// 將LED1-4對(duì)應(yīng)的GPB5/6/7/8四個(gè)引腳設(shè)為輸出

GPFUP=0;

while(1){
for(i=0;i<4;i++){
GPFDAT = ~(1< wait(30000);
}
}

return0;
}

(3)Makefile:

sdram.bin:head.S leds.c
arm-linux-gcc-c-o head.o head.S
arm-linux-gcc-c-o leds.o leds.c
arm-linux-ld-Ttext 0x30000000 head.o leds.o-o sdram_elf
arm-linux-objcopy-O binary-S sdram_elf sdram.bin
arm-linux-objdump-D-m arm sdram_elf>sdram.dis
clean:
rm-f sdram.dis sdram.bin sdram_elf*.o



本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

為了發(fā)掘宇航市場(chǎng)的潛力,衛(wèi)星運(yùn)營(yíng)商正通過(guò)提供增值服務(wù),如超高分辨率成像、流媒體視頻直播和星上人工智能,提升星上處理的能力以減少下行鏈路的需求。從2019年到2024年,高吞吐量載荷的市場(chǎng)需求預(yù)計(jì)增長(zhǎng)12倍,帶寬增加至26...

關(guān)鍵字: ddr4 sdram 宇航新時(shí)代

  本文根據(jù)網(wǎng)絡(luò)視頻采集的需要,將網(wǎng)絡(luò)傳輸與視頻采集相結(jié)合,設(shè)計(jì)了以S3C2440為核心的USB攝像頭視頻采集和嵌入式Linux系統(tǒng)下的視頻服務(wù)器,從而實(shí)現(xiàn)了遠(yuǎn)程網(wǎng)絡(luò)視頻信息采集。   

關(guān)鍵字: s3c2440 視頻采集 usb攝像頭

         之前在提起自動(dòng)化或是智能化時(shí),人們會(huì)不自覺(jué)的想到工業(yè)生產(chǎn),這是因?yàn)樽詣?dòng)化這個(gè)字眼進(jìn)入中國(guó),確實(shí)是以工業(yè)

關(guān)鍵字: 嵌入式 Linux s3c2440 視頻采集

  引言   隨著科技的不斷發(fā)展,以數(shù)據(jù)業(yè)務(wù)為主的固定寬帶無(wú)線接入技術(shù)發(fā)展已經(jīng)很成熟,而移動(dòng)寬帶無(wú)線通信技術(shù)還并沒(méi)有得到廣泛的應(yīng)用。由于移動(dòng)寬帶無(wú)線接入系統(tǒng)需要解決帶寬、移動(dòng)性和覆蓋范圍

關(guān)鍵字: IPv6 s3c2440 x86 架構(gòu)

  1 引言   人們生活水平的提高以及科技的進(jìn)步,特別是計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)和通信技術(shù)的發(fā)展,智能家居將慢慢成為未來(lái)家居生活的發(fā)展方向。1984年在美國(guó)誕生了世界上第一座智能家居建筑,

關(guān)鍵字: boa nrf24l01 s3c2440 智能家居

我們知道2440開(kāi)發(fā)流程為:移植uboot--》移植內(nèi)核---》掛接根文件系統(tǒng)。我們移植完內(nèi)核需要掛接根文件系統(tǒng),那么首先我們必須擁有根文件系統(tǒng)。如何來(lái)制作我們的根文件系統(tǒng)呢?第一步:在linux下建

關(guān)鍵字: s3c2440 根文件系統(tǒng)

1.TQ2440u-boot-1.1.6修改文件所在的路徑是u-boot-1.1.6includeconfigsEmbedSky.h將#defineLCD_TFTxxx(LCD類型)W353.5寸TFT4802724.3...

關(guān)鍵字: s3c2440 lcd參數(shù)

SDRAM分析1、時(shí)鐘使能信號(hào)CKECKE是SDRAM的主控開(kāi)關(guān),為低時(shí),所有輸入信號(hào)包括時(shí)鐘信號(hào)被阻斷,sdram進(jìn)入低功耗狀態(tài)2、數(shù)據(jù)掩碼DQM0,DQM1,DQM2,DQM3DQM就是掩碼控...

關(guān)鍵字: sdram 功耗 管腳

2440的晶振頻率為12MHZ,有兩個(gè)PLL:MPLL和UPLL,其中MPLL產(chǎn)生FCLK、HCLK、PCLK;UPLL產(chǎn)生UCLK。FCLK為ARM核提供時(shí)鐘,HCLK為AHB總線時(shí)鐘,PCLK為APB總線時(shí)鐘,UCL...

關(guān)鍵字: s3c2440 時(shí)鐘初始化

開(kāi)發(fā)板:TQ2440內(nèi)核:Linux 2.6.32PC OS:Ubuntu 11.041.配置內(nèi)核打開(kāi)I2C功能:打開(kāi)雜項(xiàng)設(shè)備,該選項(xiàng)打開(kāi)后,EEPROM也就打開(kāi)了。2. 修改代碼修改文件: linux/arch/arm...

關(guān)鍵字: at24c02 eeprom s3c2440 移植 linux驅(qū)動(dòng)
關(guān)閉