小编saw*_*ust的帖子

图像vs zImage vs uImage

他们之间有什么区别?

我知道u-boot需要uImage格式的内核.

我使用的系统首先从第1阶段加载器启动,然后调用u-boot.我想丢弃u-boot并直接从第1阶段加载器启动.我必须使用哪种类型的内核映像?

linux-kernel embedded-linux u-boot

70
推荐指数
1
解决办法
9万
查看次数

Linux阻塞与非阻塞串行读取

我有这个代码用于从Linux中的Serial读取,但我不知道在读取串行端口时阻塞和非阻塞之间的区别是什么?在哪种情况下哪个更好?

linux serial-port nonblocking blocking termios

25
推荐指数
1
解决办法
4万
查看次数

如何在U-Boot和Linux内核中添加自定义ATAG变量?

我想atag在U-Boot和Linux内核中添加自定义变量.
我怎样才能实现这一目标?
是否有任何步骤添加ATAG变量U-BootLinux

arm linux-kernel u-boot

10
推荐指数
3
解决办法
6291
查看次数

dma vs中断驱动的i/o

我对DMA和中断I/O之间的差异有点不清楚.(目前正在阅读操作系统概念,第7版).

具体来说,我不确定在任何一种情况下中断何时发生,并且在两种情况下在哪些点上CPU都可以自由地进行其他工作.我一直在阅读的东西,但不一定和解:

中断驱动

  1. 控制器通过驱动程序初始化
  2. 控制器检查由驱动程序加载的寄存器以决定操作
  3. 从/向外设和控制器缓冲区的数据传输随之发生.
  4. 控制器发出中断时(每个字节读取?读取每个字?当缓冲区填满时?传输完成时?
  5. 这是我的理解,该CPU是没有做任何事情时外围< - >控制器I/O正在发生,并且控制器< - > MM I/O都发生?
  6. 当传输完成或块填满时,CPU必须初始化从控制器缓冲区到MM的传输

DMA

  1. 与上面相同,除了控制器能够在没有CPU干预的情况下将数据从其缓冲区直接传输到MM.
  2. 这是否意味着CPU仅在整个传输完成时中断,或者在控制器缓冲区填满时是否仍然中断?
  3. 唯一的区别是CPU不再需要等待控制器< - > MM I/O,但是当控制器缓冲区填满时仍然必须中断?或者DMA是否也将其隐藏在CPU中?

architecture operating-system driver interrupt dma

10
推荐指数
2
解决办法
2万
查看次数

将大量二进制数据从u-boot传递到linux内核

在imx50 ARM板上将大量数据(3 MB)从uboot传递到linux内核2.6.35.3有一些问题.内核设备驱动程序探测功能需要此数据,然后才能释放.首先uboot将数据从闪存加载到RAM,然后使用bootargs传递linux内核的物理地址.在内核中,我尝试使用arch/arm/kernel/setup.c文件中的reserve_resource()来保留一定量的内存:

--- a/arch/arm/kernel/setup.c   Tue Jul 17 11:22:39 2012 +0300
+++ b/arch/arm/kernel/setup.c   Fri Jul 20 14:17:16 2012 +0300

struct resource my_mem_res = {
    .name = "My_Region",
    .start = 0x77c00000,
    .end = 0x77ffffff,
    .flags = IORESOURCE_MEM | IORESOURCE_BUSY,
};

@@ -477,6 +479,10 @@
    kernel_code.end     = virt_to_phys(_etext - 1);
    kernel_data.start   = virt_to_phys(_data);
    kernel_data.end     = virt_to_phys(_end - 1);
+   my_mem_res.start    = mi->bank[i].start + mi->bank[i].size - 0x400000;
+   my_mem_res.end      = mi->bank[i].start + mi->bank[i].size - 1;

    for (i = 0; i < mi->nr_banks; i++) …
Run Code Online (Sandbox Code Playgroud)

memory arm linux-kernel embedded-linux u-boot

9
推荐指数
1
解决办法
2712
查看次数

cc1:错误:-march = switch的错误值(armv5)

我按照此链接中提到的步骤编译beagle bone black的u-boot

http://eewiki.net/display/linuxonarm/BeagleBone+Black#BeagleBoneBlack-Bootloader:U-Boot

并得到以下错误.

cc1:错误:-march = switch的错误值(armv5)

谁能帮我找到这个错误的原因?我想这是因为gcc不支持armv7-a仍然不确定.

谢谢,总结

cross-compiling u-boot beagleboneblack

8
推荐指数
1
解决办法
7719
查看次数

使用LOADADDR构建内核uImage

在构建内核时,我将LOADADDR作为"0x80008000":

make uImage LOADADDR=0x80008000
Run Code Online (Sandbox Code Playgroud)

你能帮忙了解一下这有什么用吗?我可以更改LOADADDR,LOADADDR的长度是否有任何限制?

linux-kernel embedded-linux u-boot

8
推荐指数
1
解决办法
1万
查看次数

如何编写Linux内核模块的代码?

我有几年的c编程经验.现在我决定致力于Linux内核模块开发.但是,我甚至无法开始.我在ubuntu中编译了这段代码.

#include <linux/module.h>
int init_module(void){ printk("<1> hellp"); return 0;}
void cleanup_module(void){ printk("<1> bye");}
Run Code Online (Sandbox Code Playgroud)

但是,insmod无法正常工作,错误消息是"模块格式无效".谷歌搜索后,我认为它可能是版本兼容性的一些问题.而且没有好办法解决它.那么一些真正的内核模块开发人员能给我一些建议吗?在我开始学习之前,我应该准备什么环境?

谢谢!

linux linux-device-driver linux-kernel

6
推荐指数
1
解决办法
3996
查看次数

使用U-Boot从Flash上​​传固件

我有个问题.我的系统是嵌入式Linux平台.我使用串口连接到我的主板,我可以访问U-Boot.

我需要通过控制台或以太网提取驻留在闪存中的完整固件.使用TFTP或串行(Kermit等)看起来很容易下载,但是将其上传到主机PC进行备份并不明显.

有谁知道如何做到这一点?

linux embedded-linux u-boot

6
推荐指数
2
解决办法
9715
查看次数

嵌入式Linux的Linux驱动程序

我想将一些USB设备连接到我的嵌入式Linux主板上.它是运行嵌入式Linux的TI-ARM处理器,但我想它可能是任何嵌入式Linux板.

如果我购买了具有Linux支持/驱动程序的USB设备,是否可以重新编译此驱动程序以使用ARM体系结构?(而不是Windows等).

linux linux-device-driver embedded-linux

5
推荐指数
1
解决办法
853
查看次数