使用uboot启动低版本内核卡死在Starting kernel...

发布者:幸福的人生最新更新时间:2025-01-08 来源: cnblogs关键字:uboot  kernel 手机看文章 扫描二维码
随时随地手机看文章

  在u-boot2016.11(我用的这个版本)中用串口发送的时候使能了FIFO的方法,因fifo_mask,fifo_max没有被赋值,所以导致卡死在一个while循环里面(linuxarcharmplat-samsungincludeplatuncomperss.h static void putc(int ch))。

解决办法:

  1.把uboot的串口FIFO关闭,linux那边就不会走这边的流程就没有问题成功引导内核,打印正常,但是在uboot打印的时候就会出现问题。所以我的解决办法是在uboot打印完最后一句话(Starting kernel...)且fifo为空的时候的时候再将程序交接给内核。

  2.还有一个办法就是修改内核,修改方法:在linux-3.0.8archarmmach-s5pv210includemachuncompress.h中


static void arch_detect_cpu(void)

{

  /* we do not need to do any cpu detection here at the moment. */

  fifo_mask = S5PV210_UFSTAT_TXMASK; //yiming add

  fifo_max = 255 << S5PV210_UFSTAT_TXSHIFT; //yiming add

}


我用的第一种方法解决的,第二种方法没事实验过。解决方法的出处:http://www.arm9home.net/read.php?tid=86329


关键字:uboot  kernel 引用地址:使用uboot启动低版本内核卡死在Starting kernel...

上一篇:arm_GPIO_简单编程例题
下一篇:5.4.10.linux内核的gpiolib学习2

推荐阅读最新更新时间:2026-03-20 11:41

Linux Kernel之flush_cache_all在ARM平台下是如何实现的
在驱动程序的设计中,我们可能会用到flush_cache_all将ARM cache的内容刷新到RAM,这是因为ARM Linux中cache一般会被设定为write back的。而通常象DMA是访问不了cache,所以如果我们需要启动DMA将RAM中的内容写到Flash中或LCD framebuffer,那么我们就需要调用flush_cache_all将cache中最新的内容刷新到RAM中。如果不这样做在LCD中可能会出现花屏。本文主要分析在ARM平台上到底如何实现的。 1.1 flush_cache_all在ARM Linux中的实现 在include/asm-arm/cacheflush.h中: #def
[单片机]
18 RTX Kernel实时系统
1. 实时系统 实时系统简称RTOS,能够运行多个任务,并且根据不同任务进行资源管理、任务调度、消息管理等工作,同时RTOS能够根据各个任务的优先级来进行任务调度,以达到保证实时性的要求。RTOS能够使CPU的利用率得到最大的发挥,并且可以使应用程序模块化,而在实时应用中,开发人员可以将复杂的应用程序层次化,这样代码更加容易设计与维护,比较常见的RTOS如ucos、VxWorks、freertos等,更譬如较高级的应用在手机上的操作系统主要有Palm OS、Symbian(塞班)、Windows mobile、Linux、Android(安卓)、iPhone(苹果)OS如图18.1-1、Black Berry(黑莓)OS 6.0、
[单片机]
18 RTX <font color='red'>Kernel</font>实时系统
Uncompressing Linux...done, booting the kernel解决办法
u-boot是好的,是刚移植成功的,用其他的内核跑过没问题。所以皇莡-boot传参有问题,问题就是出在我移植的内核上面。 我用的是mini2440的配置,linux2.6.35的内核。网上找了很多资料试了都没有,开了CONFIG_DEBUG_LL(这个选项是在Kernel hacking里面,需要你打开Kernel low-level debugging functions & Kernel Low-level debugging message via S3C UART)本来想看下出错信息的,加了之后连Uncompressing Linux...done, booting the kernel都没有了。悲剧。 后来没办法,只能设
[单片机]
OK6410A 开发板 (八) 12 linux-5.11 OK6410A start_kernel 打印角度 第一阶段 irq
irq 涉及的概念 1. 硬件A : 异常向量表 2. 硬件A : irq硬件流程及建议的软件流程 3. 硬件B : 芯片实现的中断控制器 数据手册 12 VECTORED INTERRUPT CONTROLLERS P409 4. 软件A : linux中断处理的软件流程(irq部分) 5. 软件B : linux中断处理的软件流程(中断控制器部分) 6. 软件C : linux中断处理的软件流程(irq_desc部分) 硬件 2个VIC(Vectored Interrupt Controller, ARM PrimeCell PL192) 2个TZIC(TrustZone Interrupt Controller,
[单片机]
OK6410A 开发板 (八) 16 linux-5.11 OK6410A start_kernel 打印角度 第二阶段 do_initcalls
log // init_jiffies_clocksource- ... - __clocksource_register_scale clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns // futex_init futex hash table entries: 256 (order: -1, 3072 bytes, linear) // netlink_proto_init NET: Registered protocol family 16 // atomic_pool_
[单片机]
OK6410A 开发板 (八) 22 linux-5.11 OK6410A start_kernel 功能角度 第一阶段
CPU0 从 u-boot 的 theKernel 到 linux的 start_kernel中的 stext - start_kernel cpu 寄存器的初始化 sp寄存器 cpsr Supervisor Mode irq disabled fiq disabled little endian cp15 寄存器 的初始化 cache dcache icache write buffer mmu page table domain access CPU1 … cpu 寄存器的初始化 sp寄存器 // 值来自于 cpu0的设定值 secondary_da
[单片机]
OK6410A 开发板 (八) 63 linux-5.11 OK6410A linux内核空间常见的异常情景及分析 kernel exception
异常情景的level1 异常情景的level1 是最底层 show 当前状况的 api 其他具体的异常情景会根据 自身情景 调用 这些api oops 打印 Unable to ... 到 --- 3. oom Out of memory意味着已无可用的memory,这样的问题必然存在一些耗费资源的进程耗尽了memory的资源触发的KE Kernel panic - not syncing: Out of memory and no killable processes... 4. 未定义指令异常 一般是CPU/DRAM不稳定导致的问题 Internal error: Oops - unde
[单片机]
[linux kernel]内核移植过程记录
系统版本:Ubuntu18.04-64 编译器版本:gcc version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1) uboot版本:2018.07 -linux4sam_6.0 板子型号:at91sama5d3x-xplained MCU型号:sama5d36 内核移植主要是裁剪一些不需要的功能,使用对应的交叉工具链把内核重新编译,设备树文件按照硬件去配置。 一、配置文件路径 arch/arm/configs/sama5_defconfig //配置文件路径 arch/arm/configs/sama5_defconfig //声明环境变量,指定
[单片机]
[linux <font color='red'>kernel</font>]<font color='red'>内核</font>移植过程记录
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved