1、6410地址空間

外設區:從0x70000000-0x7FFFFFFF有256MB
主存儲區:從0x00000000-0x6FFFFFFF有1972MB
對于主存儲區:

靜態存儲區可以接我們的NOR Flash以及One nand等等設備,它的6*128MB意思是有6個BANK,每個BANK有128MB.
動態存儲區:它的起始地址為0x50000000,是內存的起始地址,故我們把DDR的內存放到了動態存儲區。
2、內存芯片硬件連接
用的兩塊128MB的芯片形成了256MB的內存容量。

3、芯片手冊導讀
打開芯片手冊找到DRAM控制器章節, (注意2440對存儲器控制器的初始化過程沒有固定的順序的!)
中文版芯片手冊5.3小節,英文版5.4小節,是控制器初始化流程




4、手把手寫代碼
進入到給的代碼目錄下:uboot_6410/cpu/S3C64XX/S3C6410/,里面有一個文件cpu_init.S



編寫自己的代碼:
start.S

makefile

mem.S




http://www.cnblogs.com/lp1129/articles/3367841.html
http://blog.csdn.net/flylokj/article/details/26448237
http://blog.csdn.net/l502091250/article/details/52115653
http://comm.chinaaet.com/adi/blogdetail/40034.html
關鍵字:內存 內存初始化
引用地址:
Part8-不用內存怎么行_6410內存初始化lesson3
推薦閱讀最新更新時間:2025-06-07 23:45
uboot移植到6410開發板的過程及環境變量的修改
一、通過U盤下載uboot.bin到開發板,U盤事先必須用飛凌光盤里的一個快速燒寫工具,把mmc.bin燒寫進U盤內,但是打開U盤后看不到這個文件。然后將uboot.bin燒寫進U盤。(ps,如果要直接通過U盤將內核還有文件系統燒寫進開發板里,可以直接將zImage跟cramfs文件系統拷進U盤) 二、將U盤插入開發板,選擇U盤啟動模式,1 2 3 off ,其他on;打開終端,啟動;之后就開始燒寫,由于沒有在U盤內放zImage ,所以燒寫的最后一行會提示not found zImage 等。 三、斷開電源,選擇nand flash啟動:1 2 3 6 7 off,其他on;打開電源,在bootdelay計時的時候按下空
[單片機]
Centos上搭建能用于ok6410開發板的tftp服務器
用rpm -qa | grep tftp 檢查是否安裝tftp服務器 如果沒有。tftp:yum install tftp*(yum install xinetd tftp tftp-server) Tftp的配置文件在 vi /etc/xinetd.d/tftp 修改tftpboot 的屬性 chmod 777 -R tftpboot 修改下載路徑; 重啟:/etc/init.d/xinetd restart 檢查tftp是否啟動成功:netstat -a | grep tftp 在光盤上安裝tftp服務器: 在centos的安裝光盤中有RPM安裝包,掛在光盤后進入到文件夾,找到相應的安裝包。 ]# cd /media/ #
[單片機]
S3C6410移植apache和php
需要準備的東西: Apache-1.3.39 for linux Php-4.4.8 for linux Ubuntu amd64位 PC機 6410開發板,我用的是友善之臂 交叉編譯: 交叉編譯呢,簡單地說,就是在一個平臺上生成另一個平臺上的可執行代碼,即使用pc上的arm linuxgcc編譯器編譯好代碼,并安裝,然后把整個安裝包放到開發板的相應目錄。 理論上只需在PC上編譯安裝arm版的apache和php即可,實際上由于在編譯安裝過程中需要用到某些文件,而這些文件在x86或amd64平臺上無法運行的,所以在編譯arm版的apache和php之前,需要先使用gcc編譯x86版的apache和php。 Apache
[單片機]
S3C6410嵌入式應用平臺構建(一)
接下來,我們看看關閉MMU,至于為什么要關閉MMU,網上大家都說的很清楚,我就不再重述,但關于關閉MMU有如下代碼: /* * disable MMU stuff and caches */ mrc p15, 0, r0, c1, c0, 0 bic r0, r0, #0x00002300 @ clear bits 13, 9:8 (--V- --RS) bic r0, r0, #0x00000087 @ clear bits 7, 2:0 (B--- -CAM) orr r0, r0, #0x00000002 @ set bit 2 (A) Align orr r0, r0, #0x00001000 @ se
[單片機]
S3C6410移植u-boot
1、下載uboot http://ftp.denx.de/pub/u-boot/ 2、解壓文件 tar xvf u-boot-latest.tar.bz2 3、進入uboot根目錄、接著開始修改文件 4、創建板級文件目錄 cd /borad/samsung mkdir smdk6410 5、復制smdk6400文件到創建的文件目錄 cp smdk6400/* smdk6410/ 6、修改目錄下的文件名 cd smdk6410 mv smdk6400.c smdk6410.c mv smdk6400_nand_spl.c smdk6410_nand_spl.c 7、修改板級文件內容
[單片機]
開發環境搭建 (一) OK6410A 開發環境 2 更改環境 OK
從nand中 的 u-boot(1.1.6) 啟動 u-boot load nand 中的kernel(4.0),然后kernel 啟動 kernel 掛載 sd卡中的第一個分區(被格式化為ext3)為根文件系統,并執行 /linuxrc /linuxrc 作為 進程1 啟動 u-boot 與 啟動模式 u-boot(版本 U-Boot 1.1.6,u-boot.bin,4062204 bytes) u-boot鏡像在nand(device 0 offset 0x500000, size 0x500000)中, 設置啟動模式為nand 啟動 環境變量 bootcmd 為 nand read.i 0xc0
[單片機]
S3C6410開發(1)-初步入門
簡單的介紹 自當年買了6410的開發板起到昨天,我的思路就一直都被當初坑爹的教程所限制著,經過這兩天不斷地學習和查詢資料,我基本可以斷定不管是飛凌嵌入式還是友善之臂,提供的gcc編譯器絕對都是很多年之前的編譯器,有的甚至是自己修改過的,不但版本落后,而且也無法兼容其它的芯片,倒確實是編譯的指令參數少了點。看著是簡化了操作但實際卻為我這種刨根問底的學習者來說增加了不小的障礙。 編譯器 首先,經過比對飛凌官方和友善提供的編譯器,我發現貌似上一個通用的arm裸機編譯器應該是arm-none-linux-gnueabi-gcc這個,原本屬于codeSourcery的工具鏈,但現在被mentor收購了,我倒官網上翻了半天愣是沒找到它的G
[單片機]
s3c6410的UART設備驅動(4)
上兩篇說了在模塊初始化是調用uart_register_driver和uart_add_port注冊UART驅動并添加端口,在模塊卸載時調用uart_unregister_driver和uart_remove_one_port以注銷UART驅動并移除端口,主要講述的是這些函數的具體代碼,但沒說這些函數在何處被調用,這一篇講述這些函數的調用。 1、在Samsung.c (linux2.6.28driversserial)文件中,有如下代碼: module_init(s3c24xx_serial_modinit); module_exit(s3c24xx_serial_modexit); 看到這兩個,應該知道了此模塊調用的
[單片機]