他们之间有什么区别?
我知道u-boot需要uImage格式的内核.
我使用的系统首先从第1阶段加载器启动,然后调用u-boot.我想丢弃u-boot并直接从第1阶段加载器启动.我必须使用哪种类型的内核映像?
我有这个代码用于从Linux中的Serial读取,但我不知道在读取串行端口时阻塞和非阻塞之间的区别是什么?在哪种情况下哪个更好?
我想atag在U-Boot和Linux内核中添加自定义变量.
我怎样才能实现这一目标?
是否有任何步骤添加ATAG变量U-Boot和Linux?
我对DMA和中断I/O之间的差异有点不清楚.(目前正在阅读操作系统概念,第7版).
具体来说,我不确定在任何一种情况下中断何时发生,并且在两种情况下在哪些点上CPU都可以自由地进行其他工作.我一直在阅读的东西,但不一定和解:
中断驱动
DMA
在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) 我按照此链接中提到的步骤编译beagle bone black的u-boot
http://eewiki.net/display/linuxonarm/BeagleBone+Black#BeagleBoneBlack-Bootloader:U-Boot
并得到以下错误.
cc1:错误:-march = switch的错误值(armv5)
谁能帮我找到这个错误的原因?我想这是因为gcc不支持armv7-a仍然不确定.
谢谢,总结
在构建内核时,我将LOADADDR作为"0x80008000":
make uImage LOADADDR=0x80008000
Run Code Online (Sandbox Code Playgroud)
你能帮忙了解一下这有什么用吗?我可以更改LOADADDR,LOADADDR的长度是否有任何限制?
我有几年的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平台.我使用串口连接到我的主板,我可以访问U-Boot.
我需要通过控制台或以太网提取驻留在闪存中的完整固件.使用TFTP或串行(Kermit等)看起来很容易下载,但是将其上传到主机PC进行备份并不明显.
有谁知道如何做到这一点?
我想将一些USB设备连接到我的嵌入式Linux主板上.它是运行嵌入式Linux的TI-ARM处理器,但我想它可能是任何嵌入式Linux板.
如果我购买了具有Linux支持/驱动程序的USB设备,是否可以重新编译此驱动程序以使用ARM体系结构?(而不是Windows等).
u-boot ×6
linux-kernel ×5
linux ×4
arm ×2
architecture ×1
blocking ×1
dma ×1
driver ×1
interrupt ×1
memory ×1
nonblocking ×1
serial-port ×1
termios ×1