《 嵌入式系统设计与实践》一一1.3 延伸阅读

简介: 本节书摘来自华章出版社《 嵌入式系统设计与实践 》一 书中的第1章,第1 . 3节,作者:Elecia White 著 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看

1.3 延伸阅读
有很多关于设计模式的优秀参考书。以下两本是我最喜欢的。
Gamma, Erich; Richard Helm, Ralph Johnson, and John Vlissides(1995),设计模式:可复用面向对象软件的基础。Boston: Addison-Wesley。有很多关于设计模式的参考资料,但这本书是革命性的著作。由于这四个作者,这本书常称为“四人帮”(GoF)书(标准的设计模式可以称做GoF模式)。
Freeman, Eric T., Elisabeth Robson, Bert Bates, Kathy Sierra (2004). 《Head First Design Patterns》. Cambridge, MA: O'Reilly Media.
面试问题:Hello World
这里有一个装了编译器和编辑器的计算机。请实现“Hello World”程序。在基本版本运行后,增加一个功能,从命令行中获取名字。最后,告诉我在你的代码开始执行之前(main()函数之前)发生了什么(感谢Phillip King提供了这个问题)。
在很多嵌入式系统中,需要从头开始开发。在这个任务的第一部分,我希望面试人能够从一个白板开始,填入基本的功能,即使是在一个不熟悉的开发环境中。我希望他具备解决这个直接明了问题的编程技能。
这是一个基础的编程问题,因此最好能熟悉简历上所述的编程语言。对这个问题来说,任何语言都是一样的。在我要求实现“Hello world”时,我考察语言的细节(如包含哪个头文件,在C和C++中使用命令行参数)。我期望面试者能基于编译错误去发现和解决语法问题(然而,当他能输入整个程序而没有任何错误,即使是拼写错误也没有时,也会给我留下极其深刻的印象)。
注意:我自己是个不错的打字员,但如果有人在旁边看着我,我会每隔一个字母就输错。没有问题,很多人都会这样。所以,不要因为这而乱了方寸。专注在键盘和代码上,而不是在你的打字技巧上。
这个问题的第二部分是关于嵌入式系统的切入点。纯计算机科学家会把计算机看做一个理想的盒子,在其中执行他的完美算法。当问及在main函数之前发生了什么时,他通常会说:“你知道的,程序运行了。”但他并没有理解其中的含义。
但是,如果他提到“start”或者“cstart”,那么他已经在面试中有个不错的开始了。总的说来,我希望他能知道除了我们看到的代码之外,程序还需要初始化,而不管是在什么平台。我期望能听到他说设置异常向量来处理中断、初始化关键外设、初始化栈空间、初始化变量,还有如果有C++对象则调用构造函数。如果他能说清楚编译器隐式地做了什么以及初始化代码显式地做了什么,那就更棒了。
最好的回答就是一步一步描述清楚发生了什么,并且解释为什么这些事情如此重要以及它们如何在嵌入式系统中发生。有经验的嵌入式工程师通常会从向量表开始,从向量表重置到系统加电行为的描述。本书的后面章节将讨论这些问题,因此即使这些名词对大家来说是陌生的也不用担心。
如果电气工程师(EE)来问这个问题,候选人就可以进一步讨论系统加电行为,那么他会给面试额外的分数。比如,解释为什么系统不可能在开关打开后1毫秒之内启动并运行。电气工程师期望听到加电时序、电压上升时间、时钟稳定时间、处理器重置/初始化延时等。

相关文章
|
敏捷开发 数据可视化 Devops
云效需求管理与迭代规划
云效需求管理与迭代规划
857 0
|
安全 测试技术 Go
ONE-FOX新款工具箱内测来袭,带给你不一样的体验~
ONE-FOX新款工具箱内测来袭,带给你不一样的体验~
2686 0
|
存储 Kubernetes 负载均衡
k8s详解
@[TOC](目录) Kubernetes(简称 k8s)是一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用程序。本篇详解将介绍 k8s 的核心概念、架构和使用方法,帮助读者深入理解 k8s 并掌握其基本操作。 # 一、k8s 核心概念 1.1 容器 容器是一种轻量级、可移植的虚拟化技术,用于打包和运行应用程序。容器可以共享主机操作系统的内核,从而提高部署效率和资源利用率。常见的容器技术包括 Docker、Kubernetes Pod、LXC 等。 1.2 Namespace Namespace 是 k8s 中的资源隔离单元,用于对 k8s 对象进行命名空间隔离。通过创建 Name
980 0
|
12月前
|
存储 SQL 运维
《告别日志混乱!巧用rsyslog与journald优化系统日志管理》
系统日志是服务器运行状况的“黑匣子”,对运维至关重要。rsyslog与journald作为两大日志管理工具,各具特色:rsyslog功能强大,支持本地及远程日志处理与转发;journald采用二进制存储,支持结构化数据和元数据,提升查询效率。两者协作可实现日志的高效收集、分类与分析,优化系统监控与故障排查。掌握它们的配置与使用,能显著提升服务器运维效率,保障系统稳定运行。
431 19
|
前端开发 Java 关系型数据库
基于Java+SpringBoot+vue的社区报修维修平台(含源码和数据库)
基于Java+SpringBoot+vue的社区报修维修平台(含源码和数据库)
|
人工智能 算法 大数据
量子计算对大数据处理的深远影响
量子计算对大数据处理的深远影响
473 62
|
消息中间件 存储 架构师
认证故事|阿里云新版ACE全球第五人考试经历回顾
认证故事|阿里云新版ACE全球第五人考试经历回顾
|
SQL 分布式计算 大数据
湖仓融合:MaxComputee与Hologres基于OpenLake的湖上解决方案
本次主题探讨湖仓融合:MaxCompute与Hologres基于OpenLake的湖上解决方案。首先从数据湖和数据仓库的历史及业界解决方案出发,分析湖仓融合的两种思路;接着针对国内问题,介绍阿里云如何通过MaxCompute和Hologres解决湖仓融合中的挑战,特别是在非结构化数据处理方面的能力。最后,重点讲解Object Table为湖仓增添了SQL生态的非结构化数据处理能力,提升数据处理效率和安全性,使用户能够在云端灵活处理各类数据。
|
机器学习/深度学习 人工智能 自然语言处理
人工智能情感标注(Emotion Labeling)
人工智能情感标注(Emotion Labeling)
1100 2
|
Web App开发 编解码 JavaScript
webRTC架构说明
WebRTC系列
644 0

热门文章

最新文章