嵌入式微处理器

其他

C语言内存操作的陷阱,你踩过坑吗?

世界版权归原作者所有,如有侵权,请联系删除。▍推荐阅读一款专业且全面的嵌入式开发调试工具状态机——单片机的万能语言(附代码)C语言指针p、*p、&p、*&p、&*p分别代表什么?→点关注,不迷路←
2023年5月12日
其他

RTOS是如何进行任务划分的?

去完成,剩余部分用另外一个任务实现,两者之间通过通信机制进行沟通对于既关键又紧迫的功能,按照紧迫功能的处理方法对齐进行处理将消耗
2023年5月12日
其他

状态机——单片机的万能语言(附代码)

毫无疑问,单片机的万能语言就是状态机!在嵌入式单片机编程中,状态机也是我们常用的方法。在此之前,曾经分享过两种状态机的实现方法,有些朋友说有点难度,我想再补充一些基础实现方法以及思路,一步一步走,链接放在这里了:用C语言实现状态机(实用篇)函数指针方法实现简单状态机(附代码)本文将从最基础入门的方法,帮助大家了解状态机,从我常用的两种状态机编写方式为大家慢慢展开。一、switch/case的方法来实现要点:用switch/case的结构配合一个状态变量,通过修改状态变量的值来切换状态。代码如下:
2023年5月6日
其他

C语言指针p、*p、&p、*&p、&*p分别代表什么?

前言在C语言中,指针是非常重要的概念。指针是一个变量,其值为另一个变量的地址。使用指针可以直接访问内存中的数据,这使得C语言非常灵活和强大。在学习C语言时相比大家都已经知道了&和*的区别了,但你知道*&p和&*p又代表什么吗?写个测试程序下面是一个简单的C语言代码,可以用来演示上面提到的几个标识符,让我们更好的理解几个标识符的意义:#include
2023年4月28日
其他

一款专业且全面的嵌入式开发调试工具

在工作中,以什么样的方式向领导汇报工作最直接高效呢?当然是图形界面!图形界面可以更好地表达一个程序设计的逻辑思维,一目了然。今天给大家分享一款专业且全面的嵌入式调试工具集:Micro-Lab。1.什么是Micro-Lab?Micro-Lab可以称得上是迄今为止最棒的嵌入式调试工具,在调试过程中遇到的所有痛点,在这里都得以解决,并引入了很多新的功能,如全新的串口/网络调试服务及关联模块、发送历史永久保存及支持别名、串口/网络动态指令编程、串口/网络虚拟示波器、超级计算器、ModBus
2023年4月26日
其他

瑞萨MCU上手有多难?

最近有小伙伴问:瑞萨单片机难学吗?其实,上手很简单,只需要几步(动动鼠标点一点),即可点亮LED。换句话说,入门单片机分分钟的事。今天给大家分享一下瑞萨MCU从0点亮第一个LED的方法:开发环境搭建:e2studio软件下载和安装e2studio创建工程:点亮一个LED开发环境搭建开发瑞萨MCU的工具(IDE)有很多,像传统的Keil、IAR这类都支持瑞萨MCU。但是,官方还是推荐用自家的工具:
2023年4月19日
其他

马云放大招,阿里版ChatGPT问世,全网首发体验来了!

能成为程序员的“辅助神器”,并成功“出圈”的最主要原因之一就是其出色的代码生成能力。因而,本次对「通义千问」的测评我们也先从这方面开始。先来个简单的:用
2023年4月10日
其他

函数指针方法实现简单状态机(附代码)

前几天发过一篇状态机的实用文章,很多朋友说有几个地方有点难度不易理解。今天再给大家换种简单写法,使用函数指针的方法实现状态机。一、状态机简介有限状态机FSM是有限个状态及在这些状态之间的转移和动作等行为的数学模型,是一种逻辑单元内部的高效编程方法,可以根据不同状态或者消息类型进行相应的处理逻辑,使得程序逻辑清晰易懂。二、函数指针实现FSM使用函数指针实现FSM可以分为三个步骤:建立相应的状态表和动作查询表根据状态表、事件、动作表定位相应的动作处理函数执行完成后再进行状态的切换三、代码实现步骤定义状态数据的枚举类型typedef
2023年4月7日
其他

用C语言实现状态机(实用篇)

关于状态机,基础的知识点可以自行理解。本文主要讲解的是一个有限状态机FSM通用的写法,目的在于更好理解,移植,节省代码阅读与调试时间,体现出编程之美。传统的实现方案:if...else
2023年4月4日
其他

编码风格:µCOS vs FreeRTOS

标准是什么?1、uC/OSuC/OS文章明确指出遵循MISRA
2023年4月3日
其他

国产MCU厂商,一网打尽!

提起单片机,你还记得哪些型号?曾几何时,提起单片机,那还是8051的天下。自从1981年Intel推出8051,并把它授权给Atmel,Philips等厂家,8051几乎成了单片机的代名词。特别是国内的早期教材,几乎都是采用了8051为例来讲的,所以电子专业的学生,基本都是从51入手。不得不说的,还有另一个巨头,Motorola。他不但在处理器领域与Intel是强劲的对手,在MCU领域,其推出的HC05,HC08系列,冷火(Coldfire)系列,也曾打遍天下,在工业控制和汽车电子行业更是处于领导地位。科技世界,也如同生机勃勃的自然界。曾经的恐龙,雄霸地球上亿年,依旧被新崛起的物种,无情地替代。科技界的巨擘,也总不免是,风流总被雨打风吹去。Silabs的8051F快速单片机,
2023年3月29日
其他

国产FPGA开发板上手体验:不足百元,集成ARM硬核处理器!

近两年,国外厂商的FPGA芯片价格飙升,由于价格,货期,出口管制等多方面因素的影响,很多公司都在寻找FPGA国产化替代方案。我工作中正在使用的几款芯片也面临停产的风险,用一片少一片……后来了解到国产FPGA发展的也不错,完全自主知识产权的芯片种类也很多,于是最近就购买了一块基于高云半导体FPGA芯片的开发板——Tang
2023年3月28日
其他

外资芯片大厂又裁员:研发一个不留!

知名芯片大厂又裁员了,这回研发部门一个也不留。为什么说“又”呢?因为前不久它刚刚裁员过,裁掉了一些相对边缘的业务部门。裁员嘛,当然是优先裁不赚钱的部门。因此,剩下的部门必然是赚钱,或者说是有希望赚钱的部门。这家知名芯片大厂,说的就是marvell。关于这家公司的历史,我就不再赘述了。据最新消息,marvell已经决定将所有的研发人员裁掉。目前还未官宣,但是国内员工基本上都已经收到了通知。其中包括稳赚不赔的设计服务部门。为什么说是稳赚不赔呢?因为这个业务有稳定的大客户。而目前设计服务的需求还是比较旺盛。我前文提到,越是经济不明朗的时候,设计服务业务反而可能更火热。那么问题来了,为什么赚钱的部门比如设计服务部门都要裁掉呢?有消息称,这是来自美国官方的压力(不保证正确性)。marvell并非纯正的美资公司,以美国的通常做法,这类的公司受到的压力往往比美资公司压力更大。比如,当年断供华为,首先被迫断供的是台积电。而当允许给华为供应芯片时,那么优先进入名单的是高通,英特尔,AMD这样的美国公司。值得深思的是,如果美方真的下决心施压这些在国内有业务的外资芯片企业,那么像英伟达、AMD、高通等美国企业,后续会不会也承受不住压力而不得不离开?虽然这些只是个人的猜想,不过正所谓料敌从宽,我们还是需要做最坏的打算,不要抱有任何幻想。对于被裁的员工,应该会获得不错的赔偿,这里先说一声恭喜。不过也应该看到,目前芯片行业就业行情和前几年相比并不算太好,可能很难拿到令自己满意的薪水。在这样的情况下,我认为最好是以团队的名义,找到新的雇主,这样可能更容易谈出一个好价钱。毕竟,建立一个团队并不容易。通常招人后,还需要多个项目的磨合才能形成战斗力。如果能整体收编,对与公司来说也算是省了不少事。从创造价值的角度,一个有战斗力的团队的价值远远胜过单体相加。marvell的裁员,说明美国仍在不断推动技术上的所谓脱钩。不过我觉得也不用过度担心,自力更生是我们的优良传统。不知道大家有没有发现这样一个现象,越是被封锁严重的行业,发展的反而更好。当年EDA原本有机会发展起来,结果欧美EDA产品涌入中国后,让国产EDA彻底失去了希望。如果美国真的不断推动技术脱钩,最后还真可能促进我们的科技发展。正如一位网友所说:希望chatGPT永远不要开源。因为不开源,国内的资本才会真正重视国内的科技人才。只有科技人才真正受到重视,才可能真正做到创新。虽然是气话,但是不无道理。marvell撤离研发部门,受损失最大的是marvell本身。对于员工来说,除了拿到赔偿金,相信也很快会在另外的企业找到发挥自己能力的岗位。毕竟,像芯片这样的行业中,还有很多事可以做,还有很多机会。END来源:白话IC版权归原作者所有,如有侵权,请联系删除。▍推荐阅读从STM32转到嵌入式Linux驱动开发让嵌入式工程师欲罢不能的7个小网站(资源篇)ChatGPT实现51、STM32、树莓派等各种点灯程序→点关注,不迷路←
2023年3月22日
其他

从STM32转到嵌入式Linux驱动开发

最近有小伙伴私信问我,如何学习嵌入式。一直想写一篇学习路线的文章,但由于各种原因拖到了现在,如今终于肝完了这篇文章。我个人是从STM32转到驱动开发的,在研二的时候学习了韦东山老师的驱动开发的课程,转到了驱动开发的方向。下面就如何学习嵌入式说下我个人的看法。一、什么是嵌入式?
2023年3月14日
其他

ChatGPT带你轻松入门嵌入式,实现51、STM32、Arduino、树莓派等各种点灯程序

神吗?我觉得比某度搜索出来的答案要好几十倍,甚至上百倍。你可能会说:我只是查询了这些简单的“点灯程序”。甚至你还可能会说:ChatGPT
2023年3月9日
其他

世界上最完美的两个软件,太厉害了!

今天给大家介绍两个软件,一个体现了人类在软件开发流程上的极致;另一个体现了程序员个体能力的巅峰。01航天飞机飞控软件先来说第一个,航天飞机飞行控制软件,就是下图这个大家伙。航天飞机重达120吨,还携带着2000吨的燃料。它有四台硬件相同,软件也相同的计算机对发射过程进行精准控制,从几千个传感器中提取信息,每秒做出几百个决定,并且对每个决定进行投票。第五台计算机,则运行着不同的软件,随时待命,准备替换其他发生故障的计算机。这些计算机要确定什么时候对主发动机点火,什么时候下令固体火箭助推器点火,火箭姿态控制....每次发射,软件都控制着价值40亿美元的设备,六名航天员的生命,以及国家的梦想。这个软件不能崩溃,不能重启,最小的误差都不允许:一个三分之二秒的计时错误就会使航天飞机偏离航线近5公里。洛克希德马丁公司的航天飞机小组实现了目标:软件几乎没有错误,接近完美。软件的最后三个版本,每个版本(42万行代码)只有一个Bug。最后的11个版本一共有17个错误,同等复杂度的商业程序有5000个。这样的软件是如何炼成的呢?答案是极为苛刻软件流程。洛克希德马丁公司的航天飞机软件小组有260名员工,这些人创造了一种完全不同的开发文化。没有超级明星程序员,开发软件的整个流程都是有意设计的,不依赖任何特定的人。这个流程使得他们过上正常的生活,满足最后期限,交付完全符合其承诺的软件。这个流程包含几个要点:1、软件的质量取决于软件的计划在航天飞机软件开发小组,软件开发周期中有三分之一的时间不写代码,而是和NASA一起用来讨论需求:软件应该做什么事情。即使是最微小的细节也要达成一致。不是口头达成一致,而是写下来,文档化,形成规范,非常专业和精确。未经双方的同意,规范中的任何内容都不会更改。没有良好定义的规范,程序员不会改任何一行代码。例如让航天飞机使用GPS导航,这一变化仅涉及6366行代码,占程序总量的1.5%,
2023年3月7日
其他

让嵌入式工程师欲罢不能的7个小网站(资源篇)

上周给大家介绍了10个常见的工具下载链接,作为嵌入式工程师,免不了要和网络协议栈/操作系统,以及关于它们的各类资料打交道。所以,今天再来介绍7个可以找到最新最正式的相关资料和代码的小网站,希望能对大家有所帮助。1.
2023年3月3日
其他

让嵌入式工程师欲罢不能的10个小网站(软件篇)

作为嵌入式工程师,免不了要和各种各样的调试软件打交道。很多时候大家都习惯度娘一下,然后试一下各类不知道靠不靠谱的链接去下载软件。后来我发现,嵌入式领域很多的调试工具官网都是免费取用的。所以,本篇介绍一些比较常见的工具下载链接,希望能对大家有所帮助。1.
2023年2月24日
其他

放弃Notepad++,还有哪些替代品?

作者多次发表不正当言论,逐渐引起了众人的不满,特别是中国人。作者前不久发表的一篇推(特)文,更是引起了国人的关注:自动翻译版推文:Notepad++
2023年2月13日
其他

STM32很难学吗?这些工具可以帮大忙!

Configuratons,如下图所示,配置调试用的仿真器和接口方式,最后点击Debug即可将TEST.elf下载到target中。▲调试器配置成功开始调试之后,如下图所示:▲开始调试6.
2023年2月10日
其他

偷偷爆料下各公司年终奖情况(最新版)

年过完了,复工有一周了,年终奖也在路上了。整体来说,今年的年终奖应该是有喜有忧,而互联网没有年终奖的情况可能也会上演。本文汇总了截止
2023年2月3日
其他

上班第一天,马上卸载这个恶心的软件!

Notepad++是自由软件的纯文本编辑器,由台湾人侯今吾基于同是开放源代码的Scintilla文本编辑组件并独力研发,整项项目起初托管于SourceForge.net。截至2011年已下载超过2700万次,并两度获得SourceForge社群选择奖——最佳开发工具。2010年6月托管于TuxFamily,现由GitHub托管。但最近我们还在过年,他又跳出来搞事情,刷存在感(可能是下载量降低了)。近期言论作者发推说:A
2023年1月30日
其他

看完这些C语言例子,你一定连说5个卧槽!

曾经的我,一直以为自己C语言学得还挺好的,直到看到下面这几个例子:例1首先我们来看一下,大师是如何求圆周率的。额,我实在词穷了,first卧槽。#include
2023年1月16日
其他

最近爆火的电子血氧仪是什么原理?测的准吗?

继口罩、抗原、药品之后,最近电子血氧仪的价格也开始水涨船高。从一个多月前的100多元,暴涨到了300多元。那么,这类家用的电子血氧仪是如何工作的呢?测量数据到底准不准?今天就带大家来分析一下。一、血氧仪工作原理血氧仪是一种监测脉搏、血氧饱和度等指标的医疗器械,常见的家用型血氧仪,主要有指夹式、腕表式等形式。一般大家最关注的是血氧饱和度(oxygen
2023年1月9日
其他

曾经对程序员最好的公司,倒下了…

J2EE,但是却并不知道如何用Java去赚钱。你使用Java,下面可能是WebLogic/WebSphere/Tomcat等应用服务器,MySQL/Oracle数据库,Linux操作系统+Intel
2023年1月6日
其他

一款活跃了17年的开发工具,好用到起飞~

Creator、VS等开发工具动不动就几个G,aardio.exe的小就是一大优势。aardio.exe的界面如下:aardio专注于桌面软件开发。我们就来看一下如何使用aardio来写一个简单的
2023年1月4日
其他

单片机只会调库和复制别人的代码是什么水平?

相信学过单片机的同学,对于调库这个操作都不陌生,大多数人都是从调别人的库阶段过来的。今天看到一个评论说,如果只会调库,到了公司后会发现自己啥都不是。其实这话说的一点也不假,如果只会调库的话,你的单片机水平还停留在C语言阶段,并不能称为真正的单片机开发。但我们要有这么一个概念:调库是自己编写的开始,如果上来就给你讲寄存器这些,我相信很多初学者都接收不了、理解不了这写寄存器到底在干啥。可是,如果从调别人库开始学习单片机,我们就会对单片机有个初始概念,对于后面的学习非常有帮助。所以,今天我们就来看一下如何从调库工程师成为真正的开发工程师。1.
2023年1月3日
其他

50条C语言奇技淫巧,精品干货!

(((size)+val_size-1)/val_size*val_size)这个不是按2的次幂ROUNDUP的,而是按某个整数的倍数ROUNDUP,例如:
2022年12月26日
其他

单片机 -> RTOS -> Linux

命令类似。我们用一张图来表示前后台进程切换:我们可以使程序在后台运行,成为后台进程,这样在当前终端中我们就可以做其他事情了,而不必等待此进程运行结束。守护进程一个运行起来的程序被称为进程。在
2022年12月23日
其他

10个超赞的C语言开源项目,强烈推荐!

万行。就算不是初学者,想完全理解全部代码基本上也是不可能的。项目地址:http://minnie.tuhs.org/cgi-bin/utree.pl?file=V610NETBSDNetBSD
2022年12月16日
其他

从零开始,教你写一个串口调试助手

摘要:相信很多小伙伴都没接触过QT,如果想用QT写一个调试助手,首先是要会一点C++语法。只要能看得懂C++的代码,就能很快的写一个串口调试助手。下面先推荐两个视频教程,感兴趣的可以看一看!1、B站Jomse工B站Jomse工看完你基本就知道串口调试助手大概是个啥样了,有了大致的了解,然后再去看和修改别人的代码。2、B站lililanglangB站lililanglang把这两个视频看完后,基本你就能够自己写一个串口调试助手了,视频很短没有废话,全程都是干货,而且别人也给出了源码。不过,为了大家方便理解,我还是写一篇手把手教你学QT串口调试助手吧!3、新建工程1、首先,你要安装QT的开发工具Qt
2022年12月14日
其他

嵌入式工程师都是如何高效摸鱼的?

当你看到一个程序员的两只手在键盘上上下翻飞、行云流水的时候,多半不是在敲击代码,大概率是在跟产品经理撕逼讨论需求;另一种可能就是在跟测试打口水仗;还有10%的几率是在论坛码字摸鱼;也有1%的几率是在跟
2022年12月12日
其他

从零开始,教你写单片机的结构体

摘要:听说还有好多学单片机的小伙伴不会用结构体?指针和结构体是学单片机必须要掌握的,如果你C语言掌握的不牢,单片机根本学不到精髓,只能完成一些低级的项目。看得懂结构体并且能够灵活运用结构体,才能说明你入门了单片机。本篇将以最通俗的方式并结合STM32单片机,来给大家讲一讲结构体的运用。解决你学完C语言、考过了计算机二级还是看不懂单片机结构体的苦恼。我们都知道,指针和结构体是单片机的难点,所以就去学习C语言,找视频看书......这里面每一个视频的播放量都非常高。对于单纯的学习C语言,这里讲的很清楚。看完你不禁在下面评论一句:哇!讲的真的太清楚了吧!但是,等你真正学单片机的时候,你会发现自己不是学过C语言嘛,计算机二级我也过了,怎么这个指针和结构体还是不懂呀?难道我学了一个假的C语言?其实这不是你的错,也不是单片机的错,而是在C语言和单片机之间需要一个过渡!这个需要过渡的点,在很多单片机视频教程中并没有去讲解。因为教育机构默认你是知道的,所以在讲流水灯时他们并不会讲解GPIO初始化这个结构体,因为默认你是知道如何操作的。申明一个GPIO_InitTypeDef的结构体,然后在LED_Init(void)函数中定义一个GPIO_InitStructure的变量GPIO_InitStructure,那么这个变量就可以设置这个GPIO_InitTypeDef的结构体中的成员。这里先做了解,请接着往下看。1、为什么需要结构体?这里先不说什么是结构体,说说为什么需要结构体?只有知道为什么需要,才能按照你的需要去学习,这样效率才会高。你才知道在什么情况下我们需要写一个结构体,怎么样去用结构体。这里我们以一个智能家居的项目为例。首先,我们来看一个实际的问题:话说有一个项目上有4个传感器:光照传感器、烟雾传感器、酒精传感器、湿度传感器。然后这四个各个传感器还有设置报警的阈值范围。一般都是这样写:#include
2022年12月8日
其他

我眼中的芯片公司FAE工作

不久前看过一篇关于FAE话题的文章,很多人都在转发。这两天脑海中突然闪现一个想法:我做过近三年的FAE,是不是也可以写一篇文章,把个人经验和心得体会分享给大家呢?大家普遍讨论的问题,本文就不再重复了。下面以我亲身经历的几件事情,让大家从另外一个角度来了解FAE。01事件1:我在7年前刚毕业时,就加入了一家外企,职位就是FAE,主要是单片机相关的技术支持工作。当年非常幸运,公司可以直接解决北京户口,但是在刚入职后不久,HR就找到我说:由于你的专业名称是控制科学与工程,而你的工作岗位名称是现场应用工程师,在申报材料提交过程中,经办人认为你的专业和工作岗位不对口,需要提供补充说明材料。我当时心里想我上学就学过单片机,不是很对口吗?所幸后来老板帮忙,花了一晚上时间给我写了一个补充说明,最后才顺利办完流程。前几天我还听说真的有因为这个不对口问题被卡住,最后没办下来户口的。点评:很多人对FAE这个岗位有误解、或者说有些偏见,他们可能会认为FAE没有技术含量,就是个普通的售前售后技术支持。其实不然,芯片公司的FAE和一般的硬件产品公司技术支持有很大的不同,一个硬件产品说明书一般就几页,一个MCU的datasheet少则也得有几百页,而且还是全英文的,仅从这点你就能感受到两者的不同。我当时之所以选择FAE,一个重要原因就是认为既然要支持客户,自己当然得很懂才行。我那时的FAE同事技术实力都非常强,他们很多人之前都做过多年的研发工作。02事件2:和代理商A去拜访当时风光无限、处于风口浪尖的L公司,向他们推广无线充电方案。我当时是赶鸭子上架被临时喊过去的,本身我对无线充电就不懂,加上模电一直也学不明白,在现场交流那天,此客户工程师飞扬跋扈,毫不留情,各种刁钻的问题向我们呼啸而来,我当时因为心虚不懂嘛,所以就没怎么说话,主要是代理商兄弟在说。没想到客户工程师直接冲我说:你是原厂FAE、都是别人在说,你怎么不说话啊?我当时那个囧啊,但还得笑脸相迎,谁让得暂时服务客户呢。后来就换成我另外一个同事支持他们了,再后来该公司没过两年也倒闭了...点评:FAE是一件挺有挑战的工作,因为你要懂很多东西,同时也会碰到一些不太友好的客户,心里抗压能力也得过得去。当然像上面那种不太友好的客户是非常非常少的,我做FAE三年时间里,只遇到过3次。03事件3:和销售H去拜访一个客户,客户遇到的是USB问题,我在现场也解决不了,销售H对客户说:王工是FAE,这个问题需要他反馈给他们公司AE、研发才能解决。和销售S去拜访一个客户,在交流过程中客户提了很多问题,我当时对那颗芯片还不熟,基本上都没有回答上来,当时觉得挺难为情的,不过销售S一点没有给我压力,反而帮我打了圆场,说这个芯片光技术手册就上千页,我们回去回去后确认一下。我和销售S仅有过2次客户拜访,但是仅这次的事件就让我特别感激他。点评:FAE是需要经常和销售一起拜访客户的,我认为FAE和销售应该相互信任、相互配合,这样才能更好的做好客户。04事件4:H公司立项一个新产品,在选型的关键阶段,我给予了他们很大的支持,周六、日也陪着客户一起调试,给他们写代码,后来评估通过后,他们就正式选择了我们,也没在考虑其他家的芯片了。点评:虽然很多时候芯片价格很关键,但是FAE也起着很大的作用,也许就因为你支持的很到位,客户就会选择你们公司的芯片。毕竟买芯片不是买白菜,回家洗洗煮了就能吃了。当客户因为你选择了你们公司的芯片、或者因为你的支持解决了一个困扰多时的问题,你会真正的感受到FAE工作的价值所在的。写在最后:我觉得做FAE最大的收获是接触了大量的客户和各种各样的应用,认识了非常多的人,包括本公司的Sales、FAE、AE、BD、PM,代理商的FAE、PM、Sales,还有客户的R&D等。由于会不断的面对新知识,这样就会倒逼着自己去不停的学习,可以获得很快的成长。而认识的不同类型的人,又会让我站在不同的角度去思考同一件事情,可以极大的拓宽自己的视野。我从芯片公司离开后的最近的2份工作,全部和这些认识的人有关,第一份工作是原来客户介绍的,第二份工作是公司销售介绍的。你可能会问我,为什么最后不做FAE了呢?其主要原因是,因为我刚毕业就去做了FAE,没有做过研发和实际产品,我觉得自己的能力和底蕴不够,不足以在这个岗位做的非常好,所以后来才离开。不过在现在的工作中,我又时常扮演FAE的角色,我也会经常支持现在的客户,帮他们解决部分技术问题。最后,关于FAE大家还有什么想说的吗?欢迎留言区讨论。END作者:wuyage来源:TopSemic嵌入式版权归原作者所有,如有侵权,请联系删除。▍推荐阅读干翻一切的王者语言到底是谁?为了学数电,学妹居然自制555芯片让新来的改一段C代码,看到结果后差点气死!→点关注,不迷路←
2022年12月7日
其他

干翻一切的王者语言到底是谁?

后记:干翻一切的王者语言到底是谁?现在还不存在!未来也许是Z语言(参见《Z语言传奇》)吧!这篇文章本来想给Java立个漫画传记,没想到只写了不完整的Java后端的开发,就已经非常长了,Android和大数据只能略微提一下就匆匆结束了。虽然Java有着庞大的生态系统,但是想干翻别人也很不容易。在“码农翻身知识星球”有人问我.net
2022年12月2日
其他

为了学数电,学妹居然自制555芯片

相信很多小伙伴在上学的时候,都学过《数字电子技术》这门专业基础课。而在这里面,有一个非常经典的芯片,那就是555定时器。记得当年为了学习数电,一学妹竟然用分立元器件去实现一个比砖头还要大的555定时器芯片,这波操作真是没谁了!今天,我就把这个有趣的项目分享给大家,希望能给各位提供一些经验。项目地址:https://hackaday.io/project/182863-giant-555-timer如果从头开始制作电路,尤其是使用分立部件,就能深入了解555定时器芯片的每一部分,以及
2022年11月24日
其他

我在ARM板上写的第一个驱动程序

摘要:搞嵌入式有两个方向,一个是嵌入式软件开发(MCU方向),另一个是嵌入式软件开发(Linux方向)。其中,MCU方向基本是裸机开发和RTOS开发,而Linux开发方向又分为驱动开发和应用开发。相较于驱动开发,应用开发相对简单一些,因为搞驱动你要和Linux内核打交道。而我们普通的单片机开发就是应用开发,和Linux开发没多大区别,单片机你去调别人写好的库,Linux应用你也是调别人的驱动程序。很多人学习的路线是:单片机到RTOS,再到Linux,这个路线其实是非常好,循序渐进。因为你学了单片机,所以你对RTOS的学习会很容易理解,单片机+RTOS在市面上也可以找到一个很好的工作。因为你学了RTOS,你会发现Linux驱动开发其实和RT-Thread的驱动程序非常像,其实RT-Thread驱动大概率可能是仿Linux驱动而写的。所以,如果你现在在学RT-Thread,那么你后面去搞Linux驱动也是非常容易上手。当然,做驱动去之前你还是要学习一下ubuntu操作系统、ARM裸机和linux系统移植,其目的就是为学习嵌入式linux驱动开发做准备。话不多说,先来一个hello驱动程序在Linux中,驱动分为三大类:字符设备驱动字符设备驱动是占用篇幅最大的一类驱动,因为字符设备最多,从最简单的点灯到
2022年11月22日
其他

让新来的改一段C代码,看到结果后差点气死!

一、事情起因事情的起因是这样的:原来的产品已经有比较成熟代码,并且产品已经批量。客户提出了新的功能改动,需要将其中一个端口的功能与另一个端口互换,原来做AI采集的端口用作开关量采集,原来用作开关量采集的端口用作AI采集。这么小的代码改动,想着让新来的小伙子尝试一下,就放心地让他去改。等两天后询问进度,本来以为已经完成的工作,竟然被告知代码测试还有问题。抽出来时间跟他一起检查了代码。当我看到下面的改动之后,瞬间崩溃了。原来的代码是这样的:GPIO_InitTypeDef
2022年11月21日
其他

是他把Linux系统带回了中国

1994年,当时中国并没有真正意义上的互联网,国内贸易部门正在建立一个VSAT信息发布平台,但当时很多网站服务器和应用使用的都是Windows系统,性能很差,经常出问题。当时正在国内休假的宫敏看到后就拿出自己从芬兰带回的SLS
2022年11月16日
其他

嵌入式软件分层隔离的典范

引言:嵌入式软件开发分层、模块化是理想状态,实际开发中因各种限制而有所取舍,但这不妨碍学习参考优秀软件架构,即使有部分思想在项目中落实,也是大有裨益的。1、AUTOSAR的软件分层理论汽车电子与消费电子不同,其硬件、软件都更关注可靠性、安全性和长效性。其软件需要兼容不同供应商、在不同车型可复用,汽车电子行业的软件架构AUTOSAR(Automotive
2022年11月15日
其他

嵌入式中状态机的几种骚操作

Q_SUPER(&reday);}/*.ready为result和begin的超状态................................................*/QState
2022年11月10日
其他

【绝密】泰坦导弹制导计算机内部结构曝光!

II核导弹的制导计算机,最近正好有幸获得了一台如下图所示,这台小型计算机在1970年代用于引导Titan
2022年11月8日
其他

嵌入式工资为什么比纯软工资低那么多?

嵌入式工资为什么比纯软工资低那么多?下面,谈谈我的个人体会。记得在1999年的时候,我离开大型国企,进入一家个人小作坊工作,做嵌入式开发,同时做软件开发和硬件设计,月薪是4000元。这对于当时身处四线城市的我来说,感觉已经算很高的收入了。但后来由于一些原因,我转行到一家纯软件开发公司,工资只有1000元,再加上奖金1000元。当时我就觉得,“软件开发的收入比嵌入式开发要少的多”。毕竟是小城市出来的,我对于这两个行业,以及软件行业内使用不同语言做开发的收入对比,没有什么具体的概念,只是从个人体会上直接得出的结论。因为是做派遣的,需要用什么语言,都是由甲方来决定。公司创立初期,没时间给员工做培训,都是自己在私下不断学习。慢慢地就感觉到,从事纯软件开发,是真的需要不断学习的;否则很难在新的语言、新的数据库、新的开发架构下维持开发能力。而之前从事嵌入式的时候,因为那个时候MCU的种类没有那么多,就是用51系列的单片机。而51单片机在大学学过,所以可以保持几年的开发方式都不变。PCB的设计,开始使用tango,后来改成protel,开发语言一直都用的是汇编,计算机也是一直都用DOS6.22的。实际上,那个时候做软件开发也用过dbase、turbo
2022年11月7日
其他

为什么中国程序员不如外国程序员有创造性?

这一天,张大胖在上班的地铁上遇到了何小痩,两个人聊起了创造力的话题。END作者:刘欣来源:码农翻身版权归原作者所有,如有侵权,请联系删除。▍推荐阅读机械转行嵌入式成功上岸89个嵌入式相关的基本概念!软件工程师换一颗芯片后,会发生什么?→点关注,不迷路←
2022年11月2日
其他

机械转行嵌入式成功上岸

因为机械出身,行业不太景气,师兄师姐都推荐转行,但是好转一点的就是嵌入式的方向了。互联网的纯软开,算法转的不多,难度也较大吧,基于这些原因,我也是目标岗位方向是嵌入式软开。为了给简历增加点东西,
2022年10月28日
其他

89个嵌入式相关的基本概念!

vector):中断向量位于中断向量表中。中断向量表(IVT)是将中断处理程序列表与中断向量表中的中断请求列表相关联的数据结构。中断向量表的每个条目(称为中断向量)都是中断处理程序的地址。61.
2022年10月25日
其他

软件工程师换一颗芯片后,会发生什么?

位置处于处理器和SD卡之间,器件是为每个SD卡信号线连接100Ω电阻。更换后,SD卡探测正常,从SD卡读写几十KB文件功能正常,
2022年10月20日
其他

深圳拟出台21条新规振兴半导体:突破RISC-V芯片研发,最高补助1000万!

半导体与集成电路是科技创新的硬件基础,有着“中国硅谷”美誉的深圳,正在密集布局相关产业。近日,深圳市发展和改革委员会发布《深圳市关于促进半导体与集成电路产业高质量发展的若干措施(征求意见稿)》(以下简称《征求意见稿》),明确提出“全面提升产业链核心环节、加速突破基础支撑环节、聚力增强产业发展动能、构建高质量人才保障体系、打造高水平特色产业园区”等多项内容。其中,《征求意见稿》将重点支持高端通用芯片、专用芯片和核心芯片、化合物半导体芯片等芯片设计;硅基集成电路制造;氮化镓、碳化硅等化合物半导体制造;高端电子元器件制造;晶圆级封装、三维封装、Chiplet(芯粒)等先进封装测试技术;EDA工具、关键IP核技术开发与应用;光刻、刻蚀、离子注入、沉积、检测设备等先进装备及关键零部件生产;以及核心半导体材料研发和产业化。▲深圳市发展和改革委员会网站截图除了政策引导,深圳在资金方面也会给予半导体与集成电路产业高额奖励。为实现核心芯片产品突破,《征求意见稿》提到:对企业购买IP开展高端芯片研发,给予IP购买实际支付费用最高20%的资助,单个企业每年总额不超过1000万元;加快基于RISC-V等精简指令集架构的芯片研发,对研发投入1000万元(含1000万元)以上的RISC-V芯片设计企业,按照不超过研发投入的20%给予补助,每年最高1000万元;对深圳企业销售自研芯片,且单款销售金额累计超过2000万元的,按照不超过当年销售金额的15%给予奖励,最高1000万元。为加快EDA核心技术攻关,《征求意见稿》提到:对购买国产EDA工具软件的企业或科研机构,按照不超过实际支出费用的70%给予补助,每年最高1000万元;对租用国产EDA工具软件的企业或科研机构,按照不超过实际支出费用的50%给予补助,每年最高500万元。此外,《征求意见稿》还对“基础支撑环节、培养高端人才”等制定了相应的补助措施:大力引进国内外设备及零部件领域龙头企业落户深圳,给予不超过3000万元一次性落户奖励;鼓励有条件的高校(含技师学院)采取与集成电路企业合作的方式共建高技能人才培训基地,经认定符合条件的培训基地项目,按照不超过基地建设投入的20%给予一次性补助,最高2000万元。以下是《征求意见稿》全文:END来源:21ic电子网版权归原作者所有,如有侵权,请联系删除。▍推荐阅读一个蓝牙实战项目的掏肺总结I2C接口通讯实现方式,你掌握了几种?printf()是如何与UART外设驱动函数“勾搭”起来的?→点关注,不迷路←
2022年10月13日
其他

一种灵活性很高的协议格式(附代码例子)

嵌入式开发中,常常会自定义一些协议格式,比如用于板与板之间的通信、客户端与服务端之间的通信等。自定义的协议格式可能有很多种,今天给大家介绍一种很常用、实用、且灵活性很高的协议格式——ITLV格式。什么是ITLV格式?大家可能看到网络上的很多文章用的是TLV(Tag、Length、Value)格式数据。实际中,可以根据实际需要进行修改。我们这里稍微改一下,实际上也是大同小异的。我们这里的ITLV各字段的含义:I:ID或Index,用于区分是什么数据。T:Type,代表数据类型,如int、float等。L:Length,表示数据的长度(Value的长度)。V:Value,表示实际的数据。其中,I、T、L是固定长度的,在制定具体的数据协议之前,需要评估好当前项目的数据会有多少、数据的最大长度是多少,考虑好后续数据扩展也可以保证协议通用。一般I设置为1~2字节,T设置为1字节,L设置为1~4字节。下面我们制定一个格式:实际中,如果在物联网系统中数据传输,我们用户自定义的协议字段可能就只包含如上四个字段就可以了。比如我们公司的云平台上的用户数据格式用的就是类似ITLV这样的格式。用户在制定协议时的协议字段包含如上字段就可以了。没有包头做一些数据区分,也没有校验字段,只包含如上字段就能保证数据可靠传输吗?因为端云通信采用MQTT,基于TCP,TCP的特点就是可靠的,网络协议中会带有校验。并且,实际在传输用户数据时,还会再用户数据之前增加一些字段区分这就是用户数据。所以,其实基于它的设备SDK来进行开发,操作的数据就是如上的数据。但是,如果应用于板与板之间的通信,只包含如上字段自然是有风险的。我们至少还需要还要包头、校验字段。实际中根据需要还可以增加其它字段,比如如果需要分包发送,还需要增加包号;如果多块板之间进行通信,还需要增加发送数据目标地址等。这里我们增加包头与校验字段:其中:(1)Head固定为0x55、0xAA。(2)Length为1字节,即Value最大为256B。ITLV格式数据处理
2022年10月12日