????????不知不觉已经写了两年博客啦,上次创作纪念日还在写STM32的简单驱动和应用开发,当时分享了一下我的桌面,还被一个大厂的老哥看上了,想看看这几句话。我这一路上一直有贵人在帮忙,感觉自己还挺幸运的。小时候是个很聪明的人后来父母赚钱没空管我,我自己在家发烧烧了一天昏迷住院了。其实我对这里印象不是很深了,就记得难受来着。因为超过了40度时间还比较久后面就不聪明了。因为学习不好一只被亲戚拿我和两个哥哥比。有天我妈妈受不了了,打了我一顿,加上换了个对我很好很好的老师,愿意引导我这个倒数的差生。当时农村的老师都是那种学不会就收拾你的,只有这个新来的老师是那种愿意和你谈心引导你的。然后我的开挂人生就开始了,哈哈。小升初和中考数学都是全镇第一。考入了当时我们那个县最好的高中。但是进入高中后因为农村孩子英语不好,人家一科就拉了我100分。还有频繁的换数学老师,我的数学也从开始的满分变成高考好像都不及格来着。因为从小内向,高考的时候手里全是汗,笔都拿不住,结果没答完卷。本来平常成绩是500多分,好好努力有机会走农村专项去哈工大的。结果疫情加上紧张,发挥失常,最后只是普通二本。
? ? ? ? 上了大学后因为没考好嘛,抑郁了,一度的想si。后面遇到了个学姐,卖学生卡的。那段时间天天晚上聊,后面抑郁好了,我变外向型了。可以说算是白月光了。当时挺喜欢的,但是自己太垃圾了,要啥没啥。加入了义务馆员。因为长得高声音好听还差点进学校的主持人团队哈哈。后面因为没啥学的,当了图书馆义务管理员,每天在图书馆拿本C语言书自己写小程序玩。然后和我一起值班的姐姐主动找到了我,我加入了矿院的一个智能装备研究所跟学长学嵌入式,刚开始就是做51然后做了个循迹避障小车,然后学32,硬石科技的代码给的真的全,各种驱动都有,刚入门做应用开发时特别得心应手。后面遇到个工大博士毕业的老师,他教会了我很多非技术性的东西。
????????我桌面的这些东西最开始的那些话都是他和我说的。我开始专研一些关于linux的东西。后面加了我们物联网专业的基地,学长给我引荐了华清,我又去培训机构系统性的学习了一下linux。然后因为学的还不错,后面去华清做了兼职,做了大概半年,然后暑假去了杭州的一家半导体公司做实习生。学到了很多先进的思想。也发现了我已经超出绝大多同龄人了。没一个能打的哈哈。什么这奖那奖的其实全是虚的。含金量并不高。都有人情世故在里面的。真到做项目的时候才能看出来你水平到底怎么样。在学校的时候我也打过比赛,结果评委全是不懂技术的。你跟他说技术他什么都不懂。没办法。在物联网基地后面做了嵌入式方向的负责人,然后要新建的机器人基地,我又去那面做了总负责人。帮老师做事的过程中学到了很多人情世故的东西。但是可能我太笨了,每次都是当场没察觉到,过后才反应过来。后面为了打robomaster,我又去演讲跟校领导申请地皮做实验室。还好最后也拿下了。暑假实习本来可以接着干的,感情线不顺利。当时自己太幼稚了,觉得世界非黑即白。再加上我没听出来那是委婉同意,直到前几天和室友去故宫玩,聊到感情史才发现。哎,一辈子单身死有余辜。反正逃避这个问题就直接辞职了。然后回学校去期末考试,摆烂了半个月,然后回家考摩托车驾驶证,同时找个实习。后面就来北京了去车企做驱动开发。后面可能会更新些汽车电子相关的东西,包括AUTOSAR中MCAL的开发和CDD的开发等等。
收获的话
感谢大家支持吧,有很多人评论和私信问我问题,有些工作的老哥问我工作的东西,有些上学的兄弟想白嫖我哈哈。在这我想说一句,我有空可以帮你看看问题,但是别让我给你免费做毕设课设行么。我真的很无语。咱们可以好好学学嘛,现在环境不太好,你再不努力就只能被学校打包3000一个人卖给大厂了。寒窗苦读10多年最后去打螺丝?
? ? ? ? 总之很感谢喜欢我文章的兄弟姐妹们,我一有时间就会分享技术的,我们一起进步。
? ? ? ? 目前我因为还没毕业证,所以就在公司实习嘛,北京的房租是真的贵,我要裂开了,一个月3000.因为最近对新领域很感兴趣,加上要准备毕业设计,所以已经一个月没更新了,真的抱歉兄弟们,我过年回家就开始猛猛更新。后面工作稳定就好啦,一周更一篇还是可以的。到时候建个技术交流群,欢迎大家一起交流技术,不论是ARM还是其它架构,是裸机开发还是操作系统。是嵌入式还是大数据或者web。我们都可以交流。全面学习做更好的自己。
? ? ? ? 让我贴代码,这不是逼我犯错误嘛,这块就掠过吧。全有保密协议我真是写不了一点哇。后面我过年回家可以把我新搞的开源项目和大家分享一下,框架搭建完到时候会招一批志同道合的朋友一起维护的。欢迎大家踊跃报名。
? ? ? ? 思来想去没有技术不是我的风格,来说几个小知识吧。
? ? ? ? inline是一个可以修饰函数的关键字,被修饰后代码段将会失去函数特性,其实在编译时有个优化等级,在一些编译器的高优化等级里就会进行函数内联,把函数变成代码段直接插入到被调用的位置。众所周知编译时会把函数和变量搞个mapping。所以通常裸机环境下inline修饰的函数是没有地址的。也就是说通常不在mapping里,有操作系统的环境通常也是没有的,复杂程序是有多个地址的。虽然都是可有可无,但是裸机环境没有的情况比操作系统环境更多。因为裸机环境代码比较简单。
(给大家扫盲区分一下裸机环境和操作系统环境
????????在操作系统环境中,函数地址通常存储在代码段(text segment)中。代码段是程序的一部分,用于存储可执行指令。在大多数操作系统中,代码段是只读的,以防止程序意外地修改自身的指令。
????????在无操作系统环境中,比如裸机编程或嵌入式系统中,函数地址通常存储在程序的固定地址处,这通常是由编译器和链接器决定的。在这种情况下,程序的入口点(即程序的起始地址)通常是预先定义好的,编译器会将函数的地址放置在适当的位置,以便程序能够正确地调用这些函数。
????????在裸机环境中,使用?inline
?修饰的函数通常不会产生单独的函数地址。inline
?关键字告诉编译器在调用处直接展开函数的代码,而不是生成一个独立的函数调用。因此,对于?inline
?函数,编译器通常会在调用处直接插入函数的代码,而不会在程序中创建一个独立的函数实体。
????????在裸机环境中,程序的入口点(即程序的起始地址)是已知的,编译器会将?inline
?函数的代码插入到调用处,而不会为?inline
?函数生成单独的函数地址。这样可以减少函数调用的开销,并且可以更好地优化代码以适应裸机环境的特定需求。
????????需要注意的是,对于一些复杂的?inline
?函数或者编译器无法内联的情况,仍然可能会生成函数地址以便进行间接调用。但是在一般情况下,inline
?函数不会产生单独的函数地址。
????????在有操作系统的环境中,使用?inline
?修饰的函数也可能会有多个函数地址,具体取决于编译器和链接器的实现,以及程序的调用方式。
????????在一般情况下,对于简单的?inline
?函数,编译器会在每个调用处直接展开函数的代码,而不会为?inline
?函数生成单独的函数地址。这样可以减少函数调用的开销,并且可以更好地优化代码。
????????然而,对于一些复杂的?inline
?函数或者编译器无法内联的情况,仍然可能会生成函数地址以便进行间接调用。此外,如果多个源文件中都包含了相同的?inline
?函数,那么每个源文件中都可能会生成该?inline
?函数的副本,从而导致多个函数地址。
)
? ? ? ? 职业规划的话就是一年内成为中级工程师,三年内成为高级工程师。五年内超过360当初面试我的那个人。也希望明年可以拿个博客专家称号,到时候逢年过节还可以那点小礼品嘿嘿。虽然不值钱,但是比较有成就感。
? ? ? ? 最后感谢读者们的支持,感谢一路上帮助我的学长学姐学弟学妹还有老师。
? ? ? ? 我们超越的永远不是别人,而是曾经的自己。