一、移植环境
主 机: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
二、移植步骤
4)准备进入u-boot的第二阶段(在u-boot中添加对我们开发板上Nor Flash的支持)。
通常,在嵌入式bootloader中,有两种方式来引导启动内核:从Nor Flash启动和从Nand Flash启动。u-boot中默认是从Nor Flash启动,再从上一节这个运行结果图中看,还发现几个问题:第一,我开发板的Nor Flash是2M的,而这里显示的是512kB;第二,出现Warning - bad CRC, using default environment的警告信息。不是u-boot默认是从Nor Flash启动的吗?为什么会有这些错误信息呢?这是因为我们还没有添加对我们自己的Nor Flash的支持,u-boot默认的是其他型号的Nor Flash,而我们的Nor Flash的型号是SST39VF1601。另外怎样将命令行提示符前面的SMDK2410变成我自己定义的呢?
下面我们一一来解决这些问题,让u-boot完全对我们Nor Flash的支持。首先我们修改头文件代码如下:
#gedit include/configs/my2440.h //修改命令行前的名字和Nor Flash参数部分的定义 |
#define CONFIG_SYS_PROMPT '[MY2440]#' //将命令行前的名字改成[MY2440]
/*----------------------------------------------------------------------- |
然后添加对我们mini2440开发板上2M的Nor Flash(型号为SST39VF1601)的支持。在u-boot中对Nor Flash的操作分别有初始化、擦除和写入,所以我们主要修改与硬件密切相关的三个函数flash_init、flash_erase、write_hword,修改代码如下:
#gedit board/samsung/my2440/flash.c |
//修改定义部分如下: //#define MAIN_SECT_SIZE 0x10000
//修改flash_init函数如下:
//修改flash_print_info函数如下: case (AMD_MANUFACT & FLASH_VENDMASK):
//修改flash_erase函数如下:
//修改write_hword函数如下:
上一篇:ARM特殊寄存器定义详解——#define A (* (volatile unsigned long *) 0x48000000 推荐阅读最新更新时间:2024-11-12 11:25
S3C2440如何设置系统时钟
时钟控制逻辑给整个芯片提供3种时钟:FLCK用于CPU核;HCLK用于AHB总线上的设备(如:CPU核、存储控制器、中断控制器、LCD控制器、DMA等);PCLK用于APB总线上的设备(如:WATCHDOG、IIS、I2C、PWM定时器、MMC接口、ADC、UART、GPIO、RTC、SPI等)。 S3C2440 CPU主频可达400MHz,开发板上的外接晶振为12M,通过时钟控制逻辑的PLL(锁相环电路)来倍频这个系统时钟。 SC2440上有两个PLL,分别是MPLL,UPLL,UPLL专用于USB设备,常用频率为48MHz和96MHz;MPLL用于设置FCLK、HCLK、PLCK。 上电时,PLL并没有被启动,F
[单片机]
linux-2.6.22.1在s3c2410移植全过程
这两天一直致力于linux 2.6.22.1 的移植工作,虽然遇到过很多困难浪费过很多时间,但是昨晚终于出来了。现将其移植的详细过程贴出来供大家参考,如果按我说的做没有成功,可能与你的开发板以及电脑配置有关系。我还列出了我在移植过程只能中遇到的种种问题及解决方案,希望对有相同爱好兴趣的你有所帮助。 一.各种开发环境介绍 bootloader编译环境: vivi版本:0.1.4 交叉编译器(CROSS-COMPILE)版本:2.95.3 操作系统:Fedora 6(在VMware 6.0.0 安装的,其实和直接安装没什么区别) linux内核编译环境: 内核版本:linux2.6.22.1 (下载地址: 交叉编译器(CROSS-
[单片机]
[单片机框架] main文件的实现和RTX移植
一、 新建工程 选择芯片型号 选择中间件,勾选RTX 选择完毕后,ok解锁。 main文件内容如下,由于我对RTX函数,再封装了一层,是为了方便切换其他OS。 /******************************************************************************** * @file main.c * @author jianqiang.xue * @Version V1.0.0 * @Date 2021-04-03 * @brief 无 ************************************************************
[单片机]
Linux-2.6.32.2内核在mini2440上的移植(十三)---移植UDA1341音频驱动
移植环境 1,主机环境:VMare下CentOS 5.5 ,1G内存。 2,集成开发环境:Elipse IDE 3,编译编译环境:arm-linux-gcc v4.4.3,arm-none-linux-gnueabi-gcc v4.5.1。 4,开发板:mini2440,2M nor flash,128M nand flash。 5,u-boot版本:u-boot-2009.08 6,linux 版本:linux-2.6.32.2 7,参考文章: 嵌入式linux应用开发完全手册,韦东山,编著。 Mini2440 之Linux 移植开发实战指南 【1】在初始化文件中加入UDA1341 设备结构 Linux-2.6.32.2 已经
[单片机]
S3C2440时钟和电源管理
一、时钟 1.系统架构 时钟源:为了减少外界环境对开发板电磁干扰,降低制作成本,通常开发板的外部晶振时钟频率都很低,TX2440开发板由12MHz的晶振来提供时钟源,要想让CPU运行在更高的频率就要通过时钟控制逻辑单元PLL(锁相环)来提高主频。 S3C2440里有两个PLL:MPLL和UPLL,MPLL用来产生FCLK的高频工作时钟(而HCLK和PCLK通过FCLK分频获取),UPLL用来为USB提供工作频率。 FCLK为ARM920T内核提供时钟,详见下图 HCLK主要为S3C2440 AHB总线(Advanced High performance Bus)上挂接硬件提供工作频率,AHB总线主要挂接有内存
[单片机]
S3C2440内存控制详解
软件可编程的大小端模式; 地址空间:每个BANK可寻址128MB(总共8个BANK 1GB空间); 可编程的访问位宽:BANK0为16或32位,其他BANK为8或16或32位; 8个存储器BANK,其中6个用于ROM或者SRAM,2个用于ROM、SRAM或者SDRAM; BANK0~BANK6的起始地址固定; BANK7的起始地址和大小可编程; 所有存储器BANK的访问周期可编程; 外部wait信号可延长总线周期; 支持SDRAM的自刷新和掉电模式。 BANK0总线宽度由OM 引脚决定,当OM =01时,booting ROM datawidth是16位,
[单片机]
minis3c2440移植之文件系统移植
说在前头:linux重要的常见系统文件都含有以下的文件,我们所做的就是要编译生成这些文件。 bin 普通文件目录(里面是普通的shell脚本命令二进制文件) sbin 系统文件目录(里面是系统文件的shell脚本命令二进制文件) dev 设备文件目录(里面是对一些外设的驱动配置如:网卡驱动) etc 配置文件目录 lib 库文件目录(里面是系统调用时一些常用到的静态和动态库) proc 内存文件目录(一般作为内存映射) mnt 外部设备挂目录(常见的CD/DVD,USB外设都会挂在次目录下) tmp 对于我们现在来说的动作就具体的编译生成这些文件,首先用的是busybox- 1.13.1编译工具直接生成bin和sbin这两
[单片机]
【GD32 MCU 移植教程】6、从GD32F1x0和GD32F3x0移植到GD32E230
1.简介 GD32E230 系列是 GD 最新推出的 Cortex_M23 系列产品,该系列资源上与既有的 GD32F1x0以及 GD32F3x0 兼容度非常高。由于 GD32E230 系列主打低功耗和低成本,所以在存量客户中可能会有越来越多的客户会有从 GD32F1x0 和 GD32F3x0 移植到 GD32E230 系列的需求,本文档专门针对既有的 GD32F1x0 和 GD32F3x0 代码如何移植到 GD32E230 做一个详细的介绍; 2.硬件资源对比 1. TSSOP20 和 QFN28PIN 的封装兼容,但 E230 系列 PA9、PA10 可以映射为 PA11、PA12; 2. LQFP32、QFN32 封
[单片机]
小广播
推荐内容
热门活动
换一批 更多
设计资源 培训 开发板 精华推荐
最新单片机文章
更多开源项目推荐
更多精选电路图
更多热门文章
更多每日新闻
更多往期活动
11月13日历史上的今天
厂商技术中心
|