下面的兩個函數ulong get_HCLK(void);ulong get_PCLK(void); 刪掉或者注釋掉.
#if 0
/* return HCLK frequency */
ulong get_HCLK(void)
{
S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
return((clk_power->CLKDIVN & 0x2) ? get_FCLK()/2 : get_FCLK());
}
/* return PCLK frequency */
ulong get_PCLK(void)
{
S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
return((clk_power->CLKDIVN & 0x1) ? get_HCLK()/2 : get_HCLK());
}
#endif
10. 記得把整個目錄拷貝到非共享目錄下編譯,不然會出現錯誤:
ln: creating symbolic link `asm' to `asm-arm': Operation not supported
然后make tx2440_config, 出現
Configuring for tx2440 board...
然后make all
出現這個錯誤:
speed.c:137: error: structure has no member named `CAMDIVN'
修改include/s3c24x0.h
在S3C24X0_CLOCK_POWER結構體內增加:
S3C24X0_REG32 CAMDIVN; /* for s3c2440*/
然后就可以make了, 奇怪的是, 只在/tmp里面能make....
生成了u-boot.bin文件, 拷貝到windows下面, 用easy openJtag燒錄進去吧..
--------------------------
增加NandFlash的支持:
修改include/configs/tx2440.h
#define CONFIG_COMMANDS
(CONFIG_CMD_DFL |
CFG_CMD_CACHE |
CFG_CMD_NAND |
/*CFG_CMD_EEPROM |*/
/*CFG_CMD_I2C |*/
/*CFG_CMD_USB |*/
CFG_CMD_REGINFO |
CFG_CMD_DATE |
CFG_CMD_ELF)
把CFG_CMD_NAND加進去, 然后在文件尾部增加:
/*NAND flash settings*/
#define CFG_NAND_BASE 0 //無實際意義:基地址,在board_nand_init中重新定義
#define CFG_MAX_NAND_DEVICE 1 //NAND Flash設備數目為1
#define NAND_MAX_CHIPS 1 //每個NAND設備由1個NADN芯片組成
這個時候編譯, 出現一個錯誤:
/tmp/u-boot-1.1.6/drivers/nand/nand.c:50: undefined reference to `board_nand_init'
make: *** [u-boot] Error 1
board_nand_init函數未定義
首先在include/s3c24x0.h增加結構體:
typedef struct {
S3C24X0_REG32 NFCONF;
S3C24X0_REG32 NFCONT;
S3C24X0_REG32 NFCMD;
S3C24X0_REG32 NFADDR;
S3C24X0_REG32 NFDATA;
S3C24X0_REG32 NFMECCD0;
S3C24X0_REG32 NFMECCD1;
S3C24X0_REG32 NFSECCD;
S3C24X0_REG32 NFSTAT;
S3C24X0_REG32 NFESTAT0;
S3C24X0_REG32 NFESTAT1;
S3C24X0_REG32 NFMECC0;
S3C24X0_REG32 NFMECC1;
S3C24X0_REG32 NFSECC;
S3C24X0_REG32 NFSBLK;
S3C24X0_REG32 NFEBLK;
} /*__attribute__((__packed__))*/ S3C2440_NAND;
在include/s3c2410.h里面增加函數聲明:
static inline S3C2440_NAND * const S3C2440_GetBase_NAND(void)
{
return (S3C2440_NAND * const)S3C2410_NAND_BASE;
}
找到linux內核包, 把/drivers/mtd/nand/s3c2410.c 文件拷貝過來, 改名叫cpu/arm920t/s3c24x0/nand_flash.c
修改cpu/arm920t/s3c24x0/Makefile, 增加nand_flash.o
COBJS = i2c.o interrupts.o serial.o speed.o
usb_ohci.o nand_flash.o
再編譯make all
上一篇:TQ2440觸摸屏
下一篇:ALSA聲卡_從零編寫之數據傳輸(基于優龍FS2410開發板,UDA1341聲卡)
推薦閱讀最新更新時間:2025-05-23 05:05



設計資源 培訓 開發板 精華推薦
- NCP110AFCT105T2GEVB:NCP110 WLCSP4 評估板
- AD9200SSOP-EVAL,用于評估 AD9200 完整 10 位、20 MSPS A/D 轉換器的評估板
- 基于DA14580_ADXL362原理圖(小米手環方案)
- 用于儀表的 2.7 至 11V 儀表放大器
- 可調臺燈
- 針對交流性能進行優化的 18 位、250 kSPS 數據采集系統
- 200W Natural Interleaving 轉換模式 PFC 反激 LED 驅動器參考設計
- DC2732A,LTC2949 電流、電壓和演示板高壓電池組的充電監控器
- LT1185CT 折返式電流調節器限制的典型應用電路
- AD8615AUJZ-R2單電源緩沖DAC輸出運算放大器典型應用電路