推薦閱讀最新更新時間:2025-04-17 02:56
S29GL128P norflash 讀寫擦除問題
最近用stm32調試S29GL128P norflash,遇到一些細節問題,和大家分享一下,希望大家能少走彎路。 因為這個項目是半路接手,已經有產品了,我的任務就是在此基礎上升級改bug.之前的程序寫的不是特別好 從新整理一下。 由于S29GL128P用的是成品模塊,賣家送的驅動歷程。開始沒有深究,直接調用測試一下讀寫,可以用就沒有深究。測試代碼如下: /****************************************************************************** * Function Name : FSMC_NOR_Test * Description : NOR Test *
[單片機]
s3c2440裸機-nandflash編程(二. nand控制器和nand訪問時序)
一.Steppingstone 我們知道nand沒有獨立地址線,cpu無法直接訪問nand上的指令,所以nand不能片上執行。那么為何程序還能支持nand啟動的呢? 為了支持NAND啟動,S3C2440A配備了一個稱為“ Steppingstone”的內部SRAM緩沖區,容量為4K。 開機時,Nandflash中的前4K數據將被加載到Steppingstone中,而引導代碼將被加載到SRAM中將被執行,如下圖所示: 我們知道s3c2440支持2種boot方式,nand或者nor,那么需要配置OM引腳來設置引導方式,如下圖: 內存控制器的地址映射表如下: 我們得知OM1接地,OM0接了一個開關SW2,那么我們的OM
[單片機]
u-boot-2016.09移植(7)-nandflash
一、uboot中增加NANDFLASH 由第二節分析得知,硬件初始化在board_init_r中,我們到這里找到nand的初始化: u-boot-2016.09$ vim common/board_r.c 看這里知道首先我們需要定義宏CONFIG_CMD_NAND,屏蔽CONFIG_CMD_ONENAND,才可以調用nand的初始化函數,在include/conifgs/tq210.h中定義宏: #define CONFIG_CMD_NAND 編譯,發現沒有定義CONFIG_SYS_MAX_NAND_DEVICE,由于我們的板子上只有一個nandflash,所以在tq210.h中定義宏: #define C
[單片機]
s3c2410的nandflash啟動過程分析
注:此文為部分摘錄,并且在原文基礎上有改動 link 這幾天一直在摸索s3c2410的啟動過程,幾天的困惑終于在昨天晚上基本解決.下面詳細分析一下它的最前面的啟動過程. 1.在板子上電的一開始,首先自動判斷是否是autoboot模式(這是由硬件設計階段,由硬件工程師對mcu的引腳連線決定的),我所使用的s3c2410是帶有nandflash的,并切被設置成autoboot,從nandflash開始啟動. 2.在判斷是autoboot模式后,mcu內置的nandflash控制器自動將nandflash的最前面的4k區域(這4k區域存放著 bootloader的最前面4k代碼)拷貝到samsung所謂的 steppingstone
[單片機]
ARM開發步步深入之NandFlash 4KB突圍
實驗目的:突破4KB的Steppingstone存儲空間限制,讀取NandFlash中4KB后的代碼實現“點燈大法”,借此掌握NandFlash的操作。 實驗環境及說明:恒頤S3C2410開發板H2410。H2410核心板的NandFlash選用的是三星片上(SOP)K9F1208U0M,該NandFlash容量為64MB。 實驗思路:開發板上電啟動后,自動將NandFlash開始的4K數據復制到SRAM中,然后跳轉到0地址開始執行。然后初始化存儲控制器SDRAM,調用NandFlash讀函數操作把4KB后的點燈代碼復制到SDRAM中,跳到點燈代碼的入口點實現點燈操作。 知識掌握:NandFlash內部結構、命令字及存儲控制器 一
[單片機]
uboot在s3c2440上的移植(5)
一、移植環境 主 機:VMWare--Fedora 9 開發板:Mini2440--64MB Nand,Kernel:2.6.30.4 編譯器:arm-linux-gcc-4.3.2.tgz u-boot:u-boot-2009.08.tar.bz2 二、移植步驟 9)實現u-boot對yaffs/yaffs2文件系統下載的支持。 注意:此篇對Nand的操作是基于MTD架構方式,在“u-boot-2009.08在2440上的移植詳解(三)”中講到過。 通常一個Nnad Flash存儲設備由若干塊組成,1個塊由若干頁組成。一般128MB以下容量的Nand Flash芯片,一頁大小為528B,被依次分為2個256B的主數據區
[單片機]
S3C2440移植uboot之啟動過程概述
文章目錄 1.分析start.S 2._start會跳轉到start_code處 3.然后進入第一個C數:board_init_f() 4.接下來進入重定位 5.清除bss段 移植Uboot其他文章鏈接: S3C2440移植uboot之編譯燒寫uboot S3C2440移植uboot之新建單板_時鐘_SDRAM_串口 S3C2440移植uboot之啟動過程概述 S3C2440移植uboot之支持NAND啟動 S3C2440移植uboot之支持NORFLASH S3C2440移植uboot之支持NANDFLASH操作 S3C2440移植uboot之支持DM9000 S3C2440移植uboot之裁
[單片機]
Jlink不能對STM05x(CM0)進行OptionByte操作
對于CM0芯片無論是加還是去除讀保護都是無效的。但是通過STLink的OptionByte操作卻可以,但是出現特別奇怪的是,程序在Run的時候,STlinkV2竟然也無法操作CM0,只能先用Jlink對其進行Erase,再用STLink進行去保護操作。在Seeger官網沒有找到售后的mail,與ST的FAE/微雪的FAE聯系上,均未果。 目前通讀了Flash這章節,對比兩個架構,主要的不同在于CM3只需要對Flash_KEY按順序寫入即可對Flash進行操作,但是CM0的芯片除此之外,還需要對OptionByte區域進行寫入KEY值,才能對Optionbyte進行操作。因此推測Jlink在操作Optionbyte時,只對FLA
[單片機]