有没有人知道为嵌入式系统构建自己的引导加载程序的良好学习资源?通过阅读各种教科书,我可以很好地了解引导程序应该做什么,并且一些教科书包括汇编程序的片段,以显示如何构建引导程序。
但是,当我搜索描述如何构建引导加载程序的资源/教程时,到目前为止我发现的所有内容都要过于先进(假设知道某些预备知识,因此很难遵循),或者,正在处理为PC或模拟器创建引导加载程序。理想情况下,我正在寻找一本涵盖预赛的单一资源/书籍,并指导我完成整个过程。如果教程/教科书需要,我很乐意购买特定的芯片和相关电缆。
答案 0 :(得分:4)
术语引导加载程序非常广泛,你的任务源于几十行代码和串行引导加载程序,或者你对Linux类型的全面操作系统(uboot)感兴趣,它具有大量的功能和驱动程序栈?
如果你还不知道答案或者不知道我在说什么,你需要弄明白,我会从小开始......即使你想要庞大的怪物操作系统解决方案,你也应该从裸机开始(这是一个引导加载程序,一个裸机程序)芯片出现重置,你的代码先运行,闪烁一个led。然后控制LED闪烁的速率,然后如果你有一个按钮,则读取按钮并使其改变LED(演示输入和输出)。如果你还没有找到并使用计时器使LED闪烁(请先使用轮询,稍后中断)。现在你可以做时钟数学,并且知道芯片时钟树是如何使用它来获得一个uart,tx只是首先,然后rx / tx回显你的接收。然后你准备好谈论你的第一个引导加载程序,它应该包含一些实际上“引导”的串行协议(发明你自己的或使用xmodem或其他东西),然后让你在启动后“加载”其他程序。
你可以使用模拟器完成所有这些(其他形式的虚拟LED),这可能不是一个坏主意,因为裸机的硬部分首先是控制汇编程序编译器和链接器来制作二进制文件实际上启动并运行。然后成堆的10美元和20美元以下的电路板,你可以学习写一个引导程序(msp430 launchpad,其他的launchpad,stm32f0和f4发现板,树莓pi,可能不是小猎犬现在避开那些,哦和无数的基于avr的主板,避免x86启动微控制器,arm,avr,msp430)。