面经

博主参加广州丰石科技公司的Web前端开发工程师面试,经历笔试和技术面,分享了遇到的笔试题和技术面交流,包括全英文技术题、闭包应用、事件委托等知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天去了广州丰石科技公司面试Web前端开发工程师,本来是抱着一个区做笔试题的看看自己现在的状态的心态。但是没想到这是面试了这么多次以来最开心的一次。
这次面试先是要做一份笔试题再进行技术面。首先笔试题出乎我的意料,居然还有测试行测之类题目,不过还好,和秋招的都差不多。还有一份是全英文的前端技术题目,还好老哥是过了六级的了,题目还是看得懂。题目都是一些基础的题目,类似一些牛客网上题目原题也有,还有就是Ajax的过程,输入URL到呈现与页面的过程,还有一道编程题,做的时候有一些头绪,但是时间问题没做出来,问 的是写一个函数,能找出给定字符串中出现次数最多的字符串而且是长度最长那个。有关答案明天再贴出。
终于到了我之所以感到开心的地方了,就是技术面了。首先很开心的是面试官居然也是校友,也就是我的师兄了。可以说,我全程很放松,可能就是因为这点。然后面试官问了我一些基础的问题,例如手写Ajax、Es6(开玩笑我这种菜鸟对此了解不多,也只是扯了一点),闭包的使用,还让我用闭包添加一个事件,就是在一堆li标签内只做一个函数,如何实现点击不同li弹出不同的东西。我给出的是用事件委托。但是后面面试官说可以用jquery的indexOf()方法,我对这个方法也没什么印象,就不多说了,明天才看看。他还问了一个万能问题,就是垂直水平居中问题,我以前看过的都是至少知道一个元素的宽或高,但是他出的是父元素和子元素的宽高都不知道。我只会用flex弹性布局,其他的我这种菜鸟当然不知道啦哈哈哈哈。然后他给出了一种方法,就是用绝对定位(百分比相对父元素)和translate(百分比相对自身元素)这种方法。这种方法我在其他地方没见过,可以说是万能唉。我对get到这个方法真的是超6哦,以前从没见过(当然是相对我这种菜鸟啦)。其余的问题就还有浏览器性能的有关问题吧。大概就是这些。总得来说这次面试真的学到了很多啊,也测试了一下秋招之后的复习成果了。不管面不面成功。接下来要学新的东西了。慢慢喜欢上了前端javascript啦哈哈哈哈哈哈

<think>好的,我现在需要处理用户的查询,用户想查找关于嵌入式系统的面试经验和常见问题。首先,我要分析用户的需求。他们可能在准备嵌入式相关的面试,需要了解常见的面试问题以及如何回答,同时可能也想知道一些面试经验。 接下来,我需要查看提供的引用资料。引用1提到了车路协同V2X和嵌入式开发的面试准备,引用2是深圳嵌入式软件岗的经,引用3关于STM32的培训课程,引用4提到了const的面试问题,引用5关于微处理器的定义。这些引用中,引用2和4最相关,因为它们直接涉及面试问题和经验。 然后,用户的需求可能包括几个方:常见问题、解答技巧、项目经验、技术点准备。我需要将这些内容组织起来,确保结构清晰。根据引用2,面试中常问基础知识和项目细节,而引用4中的const问题是一个典型例子,说明面试官会深入考察基础知识。 用户可能还希望得到具体的例子,比如代码或问题解答,所以需要包含像const、volatile这样的关键字解释,以及RTOS、调试经验等。此外,项目经验部分需要引导用户准备项目描述,突出难点和解决方案,引用3中的课程可能对项目准备有帮助。 还要考虑用户可能的深层需求,比如如何展示实际操作能力,如何应对技术难题,所以需要包含调试技巧、协议栈问题等。同时,引用5提到的微处理器定义可能用于基础知识部分。 最后,生成相关问题时要覆盖用户可能关心的其他方,比如职业规划、公司业务了解、薪资谈判等,这样能全帮助用户准备面试。确保回答符合系统指令,使用正确的中文和LaTeX格式,引用标识自然添加。</think>### 嵌入式系统面试经验与常见问题解答 #### 一、基础技术问题 1. **C语言核心知识点** - **const与volatile的区别** - `const`表示“只读”,用于定义常量或保护指针指向的数据不被修改,例如: ```c const int *p; // 指针指向的内容不可修改 int* const p; // 指针本身不可修改 ``` - `volatile`告知编译器变量可能被外部因素修改(如硬件寄存器),需直接访问内存而非优化缓存[^4]。 - **内存对齐与大小端** - 内存对齐通过`#pragma pack(n)`控制,用于优化访问速度。 - 大小端问题需在跨平台通信时处理,例如: ```c uint32_t swap_endian(uint32_t data) { return (data >> 24) | ((data >> 8) & 0xFF00) | ((data << 8) & 0xFF0000) | (data << 24); } ``` 2. **嵌入式硬件基础** - **微处理器与微控制器区别** 微处理器(如x86)侧重通用计算,需外接外设;微控制器(如STM32)集成CPU、内存、外设,适合嵌入式系统[^5]。 - **中断处理流程** 包括中断触发、现场保存、ISR执行、中断返回,需注意**可重入性**和**优先级配置**。 #### 二、项目经验与实战能力 1. **项目描述框架** - **核心功能**:例如:“基于STM32U5的智能手表项目,实现心率监测与蓝牙通信”[^3]。 - **技术难点**:如低功耗优化(使用HAL库的休眠模式)、实时性保障(RTOS任务调度)。 - **调试方法**:逻辑分析仪抓取SPI时序、内存泄漏排查(通过`free()`前后对比)。 2. **RTOS相关问题** - **任务通信方式**:消息队列、信号量、邮箱。 - **优先级反转解决方案**:优先级继承(如FreeRTOS的互斥锁)。 #### 三、进阶问题与解答技巧 1. **协议栈与驱动开发** - **CAN总线配置**:波特率计算($T_q = \frac{1}{BRP \times f_{osc}}$),同步段占比调整。 - **TCP/IP协议栈移植**:需适配LwIP的`netif`结构体与PHY驱动。 2. **代码优化实例** - **空间优化**:使用位域(`struct { uint8_t flag:1; }`)替代布尔数组。 - **时间优化**:查表法替代浮点运算(如正弦函数预计算)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值