关键词:
时钟修改
vim arch/arm/cpu/arm920t/start.S
# if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440) ldr r1, =0x3ff ldr r0, =INTSUBMSK str r1, [r0] /* FCLK:HCLK:PCLK = 1:2:4 */ /* default FCLK is 120 MHz ! */ ldr r0, =CLKDIVN mov r1, #5 str r1, [r0] /* add by Flinn */ #define S3C2440_MPLL_200MHZ ((0x5c<<12)|(0x01<<4)|(0x02)) #define S3C2440_MPLL_400MHZ ((0x5c<<12)|(0x01<<4)|(0x01)) mrc p15, 0, r1, c1, c0, 0 orr r1, r1, #0xc0000000 mcr p15, 0, r1, c1, c0, 0 /* MPLLCON = S3C2440_MPLL_400MHZ */ ldr r0, =0x4c000004 ldr r1, =S3C2440_MPLL_400MHZ str r1, [r0]
SDRAM设置
vim board/samsung/smdk2440/lowlevel_init.S #define REFCNT 1113 -> 0x4f4
时钟前面设置了, 删除后面的
vim board/samsung/smdk2440/smdk2440.c board_early_init_f(): #if 0 /* to reduce PLL lock time, adjust the LOCKTIME register */ writel(0xFFFFFF, &clk_power->locktime); /* configure MPLL */ writel((M_MDIV << 12) + (M_PDIV << 4) + M_SDIV, &clk_power->mpllcon); /* some delay between MPLL and UPLL */ pll_delay(4000); /* configure UPLL */ writel((U_M_MDIV << 12) + (U_M_PDIV << 4) + U_M_SDIV, &clk_power->upllcon); #endif
再次烧写
U-Boot 2014.10 (Nov 01 2018 - 11:06:54) CPUID: 32440001 FCLK: 400 MHz HCLK: 100 MHz PCLK: 50 MHz DRAM: 64 MiB WARNING: Caches not enabled Flash: *** failed *** ### ERROR ### Please RESET the board ###
原因是
board_init_r flash_init 此时我们的nor flash还不识别 去掉 else puts(failed); //hang();
重新编译烧写
U-Boot 2014.10 (Nov 01 2018 - 11:14:31) CPUID: 32440001 FCLK: 400 MHz HCLK: 100 MHz PCLK: 50 MHz DRAM: 64 MiB WARNING: Caches not enabled Flash: *** failed *** *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Net: CS8900-0 Error: CS8900-0 address not set. Warning: Your board does not use generic board. Please read doc/README.generic-board and take action. Boards not upgraded by the late 2014 may break or be removed.
u-boot-2014.10移植识别dm9000(代码片段)
在smdk2440.h里面注释掉CS8900相关的#if0#defineCONFIG_DRIVER_CS89001/*wehaveaCS8900on-board*/#defineCS8900_BASE0x19000300#defineCS8900_BUS161/*theLinuxdriverdoesaccessesasshorts*/#endif#if!defined(CONFIG_DRIVER_ 查看详情
u-boot-2014.10移植支持nand(代码片段)
在smdk2440.h里面加上NAND的配置选项 #defineCONFIG_CMD_NAND编译出错drivers/mtd/nand/s3c2410_nand.c:Infunction‘s3c2410_hwcontrol‘:drivers/mtd/nand/s3c2410_nand.c:44:warning:implicitdeclarationoffunction‘s3c2410_g 查看详情
u-boot-2014.10移植重定位,支持nand启动(代码片段)
前面链接地址都是0x0,可以从nor正常启动内核和文件系统。现在把链接地址改成0x33f00000一旦更改了链接地址,u-boot从norflash加载时,串口没有任何输出 添加文件boot_init.c#defineNFCONF(*((volatileunsignedlong*)0x4E000000))#defineNFCONT(*((volat... 查看详情
u-boot-2014.10移植修改环境变量的存储位置(代码片段)
原来环境变量存储在norflash里,前面mtdparts分区第二个分区就是params现在修改环境变量到nand里, 搜索defaultenvironment在Env_common.c函数里面:default_environment结构体default_environment结构体定义在env_common.c里面其中有:#ifdefCONFIG_BOOTARG... 查看详情
u-boot-2014.10移植添加mtdparts命令和分区(代码片段)
添加mtdparts命令,改命令可以查看当前分区,在启动参数里面可以以分区名代表地址和长度grep"cmd_mtdpart"*-nR 搜索可知,mtdpart在cmd_mtdparts.c里面定义 common/Makefile:147:obj-$(CONFIG_CMD_MTDPARTS)+=cmd_mtdparts.o因此需要定义CONFI... 查看详情
移植kernel-3.10.79(代码片段)
u-boot使用u-boot-2014.10find*-name"*2410*_defconfig"find*-name"*2440*_defconfig"可以看到arch/arm/configs/mini2440_defconfigarch/arm/configs/s3c2410_defconfig下载命令:setserverip192.168.1.104kernel: tftp300000 查看详情
u-boot移植---代码修改---时钟修改sdram
...现在就需要做的是代码的修改,配置成适合目标板使用的u-boot。一、时钟修改 在代码流程分析中,我们知道,系统的启动是:设置CPU为管理员模式关闭看门狗屏蔽中断设置启动参数:时钟 FCLK:HCLK:PCLK=1:2:4 FCLK... 查看详情
rtc时钟芯片替换代码移植-iic通信
1、问题RTC时钟芯片由爱普生RX-8010SJ更换成大普INS5710A,两者都是IIC通信,更换大普芯片后时钟不走、以及报掉电错误。仿真分析原因是CPU和RTC芯片收发数据延时不够导致,根据爱普生芯片手册,8010收发数据不采取... 查看详情
tiny4412--uboot移植时钟(代码片段)
...inaro提供的gcc-linaro-6.1.1-2016.08-x86_64_arm-linux-gnueabi要移植的u-boot版本:u-boot-2016-11Tiny4412开发板硬件版本为: 底板: Tiny4412SDK1312B 核心板:Tiny4412-1306 1、时钟体系exynos4412芯片时钟体系的介绍在《Exynos4412... 查看详情
w5500移植
SPI通讯协议接收和发送是同时进行的,主设备发送1Byte数据后,同时接收1Byte的空数据(DummyByte),需要读取接受缓存区复位flag,否则后面读取时读到的还是这个空数据。即使是只接收数据,SPI主设备也是需要向从设备发送数据,以... 查看详情
x-005friendlyarmtiny4412uboot移植之时钟初始化
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 查看详情
串口的移植(代码片段)
在串口的移植时候一定要更改使能USART时钟串口1挂载在RCC_APB2Periph,而其他的挂载在RCC_APB1Periph.TXRX的GPIO引脚和时钟中断源杜邦线的连接.(相应的引脚)利用条件编译防止重复编译. #defineDEBUG_USART11#defineDEBUG_USART20#defineDEBUG_USART30#de... 查看详情
一,移植uboot,分析uboot启动流程(代码片段)
文档时间:2018-08-08交叉编译器:arm-linux-gcc-4.3.2Ubuntu版本:16.04uboot版本:2013.10uboot启动流程简要如下: a,设置CPU为管理模式 b,关闭看门狗 c,关闭中断 d,设置时钟频率 e,进入lowlevel_init.S,... 查看详情
uboot研读笔记|03-初步移植uboot2012.04到jz2440(修改时钟,配置串口)(代码片段)
项目开源地址:https://github.com/Mculover666/uboot-jz24400.教程完整目录00-嵌入式Linux系统中Bootloader的作用和基本运行原理01-下载uboot源码并使用VSCode远程查看源码、编译uboot(2012.04.01版本)02-详细探索uboot启动过程(基于... 查看详情
移植最新u-boot之裁剪和修改默认参数
...ceinsight工程、编译、烧写、如果无运行分析原因 tarxjfu-boot-2012.04.01.tar.bz2 cdu-boot-2012.04.01 makesmdk2410_config make2.分析u-boot:通过链接命令分析组成文件、阅读代码分析启动过程 a.初始化硬件:关看门狗、设置时钟、... 查看详情
时钟配置
首先需要一个空白工程这边我已经移植好了,请进入gitee自行下载下载地址打开工程进入主函数,从第七行进入按照注释往函数里填入参数入口参数CRM_PLL_SOURCE_HEXT代表选择HEXT为标题外部时钟源。 查看详情
linux驱动|rtc-hym8563移植笔记(代码片段)
本文基于瑞芯微rk3568平台,关于该平台快速入手操作,大家可以参考以下文章:《瑞芯微rk356x板子快速上手》0、什么是rtc-hym8563?RTC:实时时钟的缩写是(Real_TimeClock)。RTC是集成电路,通常称为时钟芯片。1&... 查看详情
linux驱动|rtc-hym8563移植笔记(代码片段)
本文基于瑞芯微rk3568平台,关于该平台快速入手操作,大家可以参考以下文章:《瑞芯微rk356x板子快速上手》0、什么是rtc-hym8563?RTC:实时时钟的缩写是(Real_TimeClock)。RTC是集成电路,通常称为时钟芯片。1&... 查看详情