很重要。
嵌入式开发,尤其是底层内核驱动开发、操作系统移植,会涉及到很多底层、编译原理的知识,比如:
不同的启动方式,从NAND/NOR/SD卡驱动,为什么可以这样,编译链接时需要注意什么?
u-boot自启动,为什么可以从不同存储介质启动,还可以自拷贝,把自己拷贝到RAM,还可以重定位?
bootloader加载内核镜像的时候,加载到哪里?为什么要加载到这里?
共享库加载(映射)到内存,为什么可以在运行时动态加载运行?
内核模块是怎样通过insmod命令加载到内核并运行的?
内核模块是如何卸载的?为什么可以在内核运行时可以动态加载和卸载?
我们调试程序的时候,为什么要分为debug文件和release文件?
源码级调试是如何实现的?
很多工程上的问题,如果你不满足于仅仅会操作、会修改,把代码跑起来,而是想探究得深一点,想知道为什么要这样改,为什么要这样配置,这些都需要编译原理、计算机系统原理等理论的支撑,才能帮助你更好的理解。
如果你不满足仅仅做一个工程师、码农,而是以后向往系统架构的方向发展,我觉得编译原理、操作系统、计算机架构与系统原理都是必须要掌握的。
但是对于很多电子、自动化、电气等弱电类专业的学生来说,可能硬件电路是强项,信号分析、控制算法是强项,但是涉及到操作系统、编译原理往往力不从心,是一块理论短板。自己看各种大块头书的话,又感觉理论性太强,跟自己所做的工程关联不大,学习起来没动力,那该如何学习这块知识呢?
广告来了,《C语言嵌入式Linux高级编程》视频课程,就是为电子、自动化等弱电类专业,没有学过编译原理、操作系统等专业课的学员和工程师,精心打造的一套嵌入式C语言进阶学习课程。
本套课程一共9期,每期一个专题,包括:
ARM架构与反汇编://现场反汇编、手撕汇编代码,让你深刻理解程序运行的底层机制
程序的编译原理与运行机制分析://互联网上第一家在ARM架构下重新演绎编译原理
程序运行的堆栈内存深入分析://堆栈溢出攻击、内存泄露,让你从原理上掌握它
Linux内核中的GNU C 语法扩展://破除阅读Linux内核源码的语法障碍
指针的深入分析与探讨
C语言的模块化编程思想
C语言的面向对象编程思想
C语言的多任务编程思想
等话题,让不同专业背景的学员,弥补嵌入式开发所需要的理论知识体系和短板,为后续的职业发展打下坚实的基础。
领取专属 10元无门槛券
私享最新 技术干货