📄 cliff_change.txt
字号:
首先,当然是把前面的中断向量改掉
也就是 44binit.s 95 - 101 行
变成什么呢,就是 ldr pc, =0x0c0000??
然后,之所以我们的 BIOS 不能直接运行 uClinux 其实就是波特率的问题
要解决波特率。
先想到的当然是 Main.c 22行
改成 57600,编译……结果不行!
然后我想到,我们的 uClinux 是配置为 ARMCLK = 60MHz 的
而我们的 BIOS 是运行在 64MHz 的。因此尽管波特率一样,但是 MCLK 变了的话……那就不对了
所以,把我们的 BIOS 也改成 运行在 60MHz
具体做法:
INC/Option.inc line 18 20
PLLCLK 64000000 --> 60000000
INC/Option.h line 8
MCKK_D 64000000 --> 60000000
后面 38行开始添加一段
#elif (MCLK_D==60000000)
#define PLL_M (52)
#define PLL_P (6)
#define PLL_S (0)
SRC/Main.c line 146
MCLK_M = 52; MCLK_P = 6; MCLK_S = 0;
(原来是 58 (58+8)=64M , 后面是 2/1 但是 44B 数据手册说 1M <= Fin/p < 2M,原来我们的是正好 2M,我就改成 1M
由于 MCLK 变成 60M,修改 REFCNT
MX Flash 的问题
见 Flash.c 扇区大小配置不对
BIOS 原来是配置为 8M SDRAM 的,现在换成了 16M
那么,在 INC/Memcfg.inc 也要做相应的修改
原来 8MB (4Mx16bit) 的 SDRAM 的 Column Address 是 8bit 的
现在的 16MB (8Mx16bit) 的 SDRAM 的 Column Address 是 9bit 的
所以在 Memcfg 中,查找 B6_SCAN ,B7_SCAN
原来是 0 (8bit)
现在要变成 1 (9bit)
合并了各种 Flash 的操作,自动检测 SST39LF160, MX29LV160T, MX29LV160B
合并了 SDRAM 大小的配置,自动检测 8M / 16M
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -