如何在 ARM Cortex M3 板上运行 Linux?
我有一个 Luminary LM3s8962 ARM Cortex M3 开发板,虽然我已经能够使用 Keil RTOS 为其编程,但我更喜欢在 Linux 和嵌入式 libc 之上进行开发。我想知道的是如何才能真正获得 Linux 内核以及我的应用程序和主板上的依赖项?它有一个 SD 插槽,我可以创建某种文件系统映像并使用引导加载程序对主板进行编程吗?我必须自己编写引导加载程序吗? 我完全不知道从哪里开始做这一切。我已经研究过 yocto 项目,但我仍然不知道如何实际处理多兆字节内核和文件系统映像文件并让我的主板运行它们。
I have a Luminary LM3s8962 ARM Cortex M3 development board, and while I've been able to program for it using the Keil RTOS, I'd much prefer to develop on top of linux and an embedded libc. What I would like to know is how can I actually get a linux kernel and my application and depdencies on my board? It has a SD slot, can I create some sort of filesystem image and just program the board with a bootloader? Would I have to write the bootloader myself?
I have absolutely no clue where to start on any of this. I've looked into the yocto project, but I'm still at a loss of how to actually deal with the multi-megabyte kernel and filesystem image files and get my board to run them.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
Linux 到 M3 的移植是由 ARM 的 Catalin Marinas 完成的。
您可以在这里找到相关信息:
http://www.linux-arm.org/LinuxKernel/LinuxM3
A port of Linux to the M3 was done by Catalin Marinas of ARM.
You can find information about it here:
http://www.linux-arm.org/LinuxKernel/LinuxM3
我正在 Cortex-M3 上编写一个图形 GUI 应用程序,我必须说我一点也不怀念 Linux 主机。我的程序从 main() 开始,我有来自 libc 的 malloc,SDCARD 在 FATS 上运行,其工作原理与
fopen()
、fread()
类似。当然,你必须了解你的东西,但 Linux 即使运行它也会占用你所有的资源,并且给你带来很少甚至没有任何优势。如果您不需要并行运行多个应用程序(线程)并且不需要高级调度,那么最好从
int main()
开始并使用libc
。I am writing a graphical-GUI application on Cortex-M3 and I must say I do not miss Linux-host even a little. My program starts with main(), I have malloc from libc, SDCARD runs on FATS and works literally like
fopen()
,fread()
.Sure you have to know your stuff, but Linux even if it ran it would eat all your resources and give you little to no advantage. If you do not need to run several apps in parallel (threads) and do not need advanced scheduling, you are much better starting from
int main()
and usinglibc
.您尝试过嵌入式紧凑型 .NET 吗? (我可以从这里听到嘘嘘!!,哈哈)如果您熟悉 Visual Studio 编码,那么这就是小菜一碟。
我很久以前就尝试过 Cortex M7 STM32 处理器,但并不适合我严格的时序要求。
请访问 http://msdn.microsoft.com/en-us/netframework/bb267253
Have you tried Embedded Compact .NET? (I can hear the BOOO BOO!! from here, lol) If you are familiar with Visual Studio coding its piece of cake.
I've tried long time ago in a Cortex M7 STM32 processor but was not good for my tight timing requirements.
Check it out at http://msdn.microsoft.com/en-us/netframework/bb267253
我不会费心去尝试在 ARM Cortex-M3 上运行 Linux,除非是为了学习东西。最好用MMU来抢板。如果您正在寻找 Cortex M3 操作系统,我会坚持使用某种 RTOS。
I wouldn't bother on trying to run Linux on ARM Cortex-M3, unless for learning things. Better grab board with MMU. If you are looking OS for Cortex M3, I would stick with some sort of RTOS.