2410至2440A移植指南:关键模块调整与优化.pdfVIP

  • 0
  • 0
  • 约2.39千字
  • 约 2页
  • 2026-01-26 发布于北京
  • 举报

2410至2440A移植指南:关键模块调整与优化.pdf

2410到2440移植

看本文件请参考《都江堰操作系统与嵌入式系统设计》中地15章。

与本文一起共享的“2410_2440x_to_2440a_差别-040203.pdf”文件描述了2410和2440的区别。

因2410和2440的差别很小,所以移植工作量非常小。仅需修改:配置文件config.h、启动文件

initcpu.s,uart模块、nand驱动模块,键盘模块key-hard.c。

1.配置文件

config.h文件中,只需要修改主频相关的几个参数,如下:

#definecn_mclk(400*M)//主频

#definecn_hclk(cn_mclk/4)//高速外设时钟

#definecn_pclk(cn_mclk/8)//低速外设时钟

#definecn_timer_clkcn_pclk//定时器输入时钟

2.启动代码

启动代码即initcpu.s文件,该文件在2410和2440中仅两处不同。

1、时钟寄存器设置,2410需设置clkdivn、clkcon、upllcon、mpllcon共4个寄存器,2440

则多一个寄存器camdivn需要设置。2410设置完mpllcon后可以立即设置upllcon,2440

则需要在两者中间7条nop指令。

2、内存总线设置,2410和2440主频不一样,总线定时所要求的时钟数也会不一样。

3.串口驱动

2410和2440的串口结构几乎一样,不同点在于:

1、2410的串口fifo是16字节,而2440是64字节。

2、由于fifo深度不同,导致UFSTAT寄存器中个位的定义不一致。

这种相似性使得两者驱动程序的差异也非常小,读者可以直接比较两者的uart.c文件,很容易

理解的,在此不再赘述了。

4.键盘驱动

键盘驱动中需要修改的是key_hard.c文件中的两个函数。

bool_tkey_hard_init(void);//把键盘连接的口线设为输

uint8_tkey_scan_hard(uint16_t*key);

这是一个与键盘电路密切相关的函数,2410版有4个按键,2440版则有6个按键,且都是用口

线直接读入,故两个函数极为相似,仅口线不一样。

5.nand驱动

2410和2440的nand驱动也非常相似,主要区别在于:

1、2410仅支持小块nandflash,2440则同时支持大块nandflash。

2、为支持大块nandflash,2440增加了许多寄存器。

3、2440增加了一个控制寄存器NFCONT,原2410中config寄存器NFCONF中的部分功能被

转移到NFCONT中。

因此,两者代码的主要不同,体现在nand.h文件中,差异点:

1、structnand_reg结构的定义不同。

2、两者NFCONF寄存器中对talcs的定义不一样,在nand.h中的定义不不同

#definecn_talcs0//1clk(10ns)for2410

#definecn_talcs1//1clk(10ns)for2440

3、2410中,片选控制在NFCONF寄存器的bit.11中,2440则在NFCONT的bit.1中,使下列

两个宏的定义不同。

2410中:

#defin

文档评论(0)

1亿VIP精品文档

相关文档