问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

嵌入式系统中ddr是由uboot还是kernel配置的

发布网友 发布时间:2022-03-06 18:08

我来回答

1个回答

热心网友 时间:2022-03-06 19:38

如果因为uboot或者内核有错误而导致启动失败,出现卡死状态等,那么需要判断问题是出在uboot阶段还是linux阶段,这可以通过观察启动过程中的debug信息来判断,

如果uboot出现问题是比较麻烦的,因为这需要有一个装有正确的uboot/bootloader的flash芯片作为引导,

将系统重新引导至uboot界面中,之后再重新烧写uboot到系统本身的flash中,进而烧写内核(如有必要)。

一,重新烧写uboot

首先需要一个特定的PCLL(flash芯片),这个PCLL上固化了一个正确的bootloader, 通过这个bootloader可以成功进入bootloader界面, 在此条件下重新烧写uboot/bootloader。

使用此PLCC的步骤是:

在系统下电情况下, 使用跳线/拨码开关等将此系统的启动方式变从外部flash(即PLCC)引导,

之后将系统上电, 这时会从PLCC 启动。

启动成功后,进入uboot界面, 即命令行显示Dream 5220# #(类似命令行提示符)

此时将版卡的启动方式变为 从 nor flash 启动。 之后重新烧写uboot到此nor flash 上。

再用 kermit 来操作。

Kermit是一个串口服务工具,类似与minicom ,功能比minicom 多。

//kermit/usb0.cfg 是kermit 的配置文件, 在其中可以配置 /dev/ttyUSB0 等路径
kermit -y kermit/usb0.cfg

-y kermit/usb0.cfg 指定配置文件。

该文件内容如下:
/*

set line /dev/ttyUSB0
set speed 115200
set carrier-watch off
set hardshake none
set flow-control none
robust
set file type bin
set file name lit
set rec pack 1000
set send pack 1000
set window 5

*/
将此文件保存在主目录下, 命名为:kermit/usb0.cfg(可自定义)

执行后进入kermit 界面, 按 c

进入 串口界面(就是设备的界面)

切换回kermit 界面快捷键:Ctrl + \ , 之后再按 c 。

执行:
Dream 5220# # detect

显示:
Checking for NOR flash...
Flash detect 33554432Mb

这说明flash状态良好。

//让串口进入接受状态。
Dream 5220# # loadb

进入kermit 界面: ctrl + \ 按 c

执行:
send uboot.bin

就是将当前目录下的uboot.bin 文件发送给串口。

完成后,进入串口界面。

执行:
Dream 5220# # upgrade 0x20000000 0x1dc00000 +0xe0000

0x20000000 是 kermit 执行 send 后 将文件send 到的默认地址。
再将文件写到nor flash 的首地址:0x1dc00000 +0xe0000为写的长度。

执行:reset。让系统重启。

/*

至此,新的uboot烧写完成,reset后, 如果还是不成功的话,那么问题肯定出在linux的的启动阶段或者新的uboot还是有问题,这可以通过启动过程中的debug信息看出来

一,如果内核有问题,导致linux没有进入shell界面,要重新进入Uboot环境,就是在reset 之后,一直按 ctrl + c ,这样在uboot启动完成后, 不会进入kernel的启动阶段,而是停留在uboot的命令行中,

在这个uboot 环境下,烧写新内核, 配置ipaddr,serverip等,同最开始的例子中操作是一样的。

//本机uboot 的ip地址
setenv ipaddr 10.10.167.10

//服务器ip地址
setenv serverip 10.10.167.249

//下载linux内核vmlinux52
// 在服务器的tftpboot目录下存在相应文件,搭建到tftp服务环境
tftpboot 0 vmlinux52

// 烧写到flash 上。
// 0x20000000 是vmlinux52的存贮位置。
// 0x1dd00000 是系统内核的起始位置(每个设备位置不同),
// +0x600000是文件长度
upgrade 0x20000000 0x1dd00000 +0x600000

在reset 之前,一般还要设置一下环境变量。

比如

setenv linux_args mtdparts=octeon_nor0:1m(BOOT),7m(LINUX),21m(CONFIG),3m(MD)

setenv bootcmd 'bootoctlinux 0x1dd00000 coremask=0x3 mem=700'

//保存
saveenv

bootoctliux

二 ,如果新烧写的uboot本身有问题,那么修改uboot代码,编译通过后, 使用PLCC重复上述烧写过程。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
家里有壁虎对小孩有影响吗? 八字合婚:男女一个字也没合上 什么是八字合婚? 我讨厌女人,我恨女人 我痛恨这个世界上所有的女人,原因如下? 我不想来这世上,趟这一趟浑水,我恨这肮脏的社会!我恨我无奈的活着!如果... 大雅家是什么品牌 1971年阴历8月初一上午8点出生的女的 钗钏金 ,今年打算买房几楼好 请... 请问高人我是一九八八年农历七月初一 子时 命运如何??女的。 我是1979年阴历十月初一,中午11点15分生的女生,请问明年财运如何,请高 ... 我是1987年七月初一中午12点出生,女生,请高人算命 思域是什么梗 双核P87002.53G +4G DDR2 800 +1G集显+GM45主板能跑64位的WIN7系统吗 麻烦大神推荐一款主板,要求可以使用AM3接口938针的CPU,DDR2的内存条。 bba是什么梗? 北京懂车行是干嘛的? Carl Zeiss Jena Sonnar 135mm/f3.5 MC DDR这个镜头的高光如何? 车行酷配是做什么用的? 在AM335x的uboot里面DDR寄存器的这个设置是什么意思 mini车友会什么梗 DDR3内存怎么这么贵啊 凯迪拉克车友会什么梗? 斗地主车友车行是谁 电脑的内存条是ddr3可以改成ddr4的吗 车友车行是谁 工业平板电脑中内存DDR3和DDR4的区别 旭旭宝宝车友车行什么梗?, 现在DDR3的内存到底怎么样? 车有车行什么梗?, 车友车行是什么梗? DDR2笔记本电脑内存条最高频率是多少?最大内存是多少 uboot怎么查找ddr的配置文件 找思域是什么梗? 这两个改车行分别叫什么名字? 怎么样在word文件里放入excel文件 怎么在excel里放入word文档 如何在word中插入excel文件? 往后他就教我开车了先是他开我看一个人开车了什么梗? word文档怎么放进excel 懂车帝app是什么梗 车行经理临别告白: 请教高手,如何在EXCEL文件中把WORD(或EXCEL)文件插入进去? 车行的高手来下!急急急! 御宅族是什么意思? 怎么把桌面的word文档和excel放进开始程序里? 御宅族是什么意思 “御宅”是什么意思 啊 御宅什么意思 在动漫中,御宅是什么意思? 御宅是什么? 怎样才能把淘宝做起来