自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

YoYo的桃子树

桃子先生心愿,找一份喜欢的工作,找一个喜欢的人。这样每天24个小时都是开心的。

  • 博客(76)
  • 资源 (6)
  • 收藏
  • 关注

原创 【stm32】 stm32cube IDE v1.3.0 使用步骤(freeRTOS + GPIO + 串口 printf)

1. 引言这篇应该不能算“深入思考”了吧,只是一个新工具的尝试。但是都放在stm这一个系列里我就不改名字了。说是新工具,其实一点也不新。cubeIDE应该已经推出来不少几年了,只是一直没用。之前这么久做stm32都是用Keil MDK来做的,潜意识里都快把keil当做st的官方工具了。cubeIDE对应的是st的HAL库,之前做stm32f7的时候用过这套库,感觉比3.5的标准库冗余了很多,估计也是为了兼容多个平台而做的妥协,没办法,这年头芯片的性能越来越强,肯定还是以开发效率为优先,就像很多人不

2020-07-17 09:26:50 7189 2

原创 【S32K】S32K144入门笔记(5) Lin (Lin组件)

1. 引言上一篇介绍了S32K 的LinStack组件,其实这个组件正常用起来除了觉得有些约束,倒没有其他问题。直到有一次遇到一个超声波雷达,要发 的ID,这个是属于诊断帧的,使用LinStack怎么也不知道该怎么配进去了,还有切换调度表的时候总是不成功。可能是对协议不够理解,很多地方总觉得用起来很别扭,让我们痛定思痛,决定放弃这个组件,让组里另外一个小伙子改成了Lin组件。期间一起看过这个模块,所以也记录一下吧,用做和上一篇的对比。2. DemoDemo用的就是上一篇里提到的lin_master

2020-07-03 07:08:59 8587 7

原创 【S32K】S32K144入门笔记(4) Lin (Lin stack组件) 驱动超声波雷达实例

0. 引言Lin这块是我一直没弄懂的部分。很多东西一知半解,当时感觉是硬凑了答案出来。果然过标的时候出了问题,几个小伙伴帮忙一起刷夜也没搞定,好在标还是顺利过了,不然罪过大了。之前做lin这块一直用的是linStack组件,这部分包含了协议栈部分,需要对lin的协议比较清楚和理解才好配置。尤其是,图形界面配置完成后会生成一个ldf文件,这个文件很重要,所有的代码都是基于这个文件生成的,但是这个文件我确认没找到什么介绍资料,所以很多配置都是一点一点凑出来的,再实际验证的。抓住这次写文档的机会,把当时

2020-06-22 10:34:36 10530 6

原创 【硬件】Lin总线 (与Can总线/Uart对比)+ uart模拟lin

1. 引言Lin是一种一主多从的单总线协议。背景历史这些都可以在文末参考链接中查阅。2. Lin总线2.1 数据定义/******************************************************************Lin总线帧格式:帧头+应答帧头:同步间隔段(至少13个显性电平)+同步间隔段间隔符(至少1位隐形电平)+同步段(0x55)+字节间间隔+PID(ID+校验位)注:PID=ID(6位)+校验(2位)ID 取值范围为: 0x00~0x3fI

2020-06-19 11:18:55 33698 11

原创 【S32K】S32K144入门笔记(3) SPI(lpspi组件)

0. 引言与第二篇can对应,第三篇本来想写lin的,毕竟都是车身上常用的总线。但是lin比较麻烦,所以先拖后一下,先把SPI记录一下。SPI在我们的系统架构中是S32K和ADAS之间做数据传输用的,毕竟速率够高,数据量能传的比较大。1. 准备1.1 SPI基础知识1.2 开发环境1.2.1 软件开发环境1.2.2 硬件环境SPI2. Demo...

2020-06-18 09:49:42 18540 11

原创 【硬件】硬件基础小知识 之 SPI总线 (简洁要点)

1. 引言SPI : serial perripheral interface 串行外围设备接口SPI总线是硬件上用的比较多的一种串行总线,高速传输,无应答无校验。这里简单记录一下SPI总线的一些要点。太基本的概要、历史等都略过。2. 引脚说明SCK :serial clock 时钟SS/CS:slave select / chip select 片选SDI:serial data inputSDO:serial data outputMOSI:master output s

2020-06-17 10:08:36 6540

原创 【S32K】S32K144入门笔记(2) Can(can_pal组件)

0. 引言真没想到距离写第一篇S32K144入门笔记(1) 从零开始进行开发环境搭建已经过去了半年。当时是项目紧逼,20天之前要把这个片子的大部分外设跑起来,做好BOOT+APP架构,在十一之前出一个demo。后来demo完成就转手给其他同事了,然后进了其他项目,一转眼就是半年。这半年里,S32K已经推到了多个项目里使用。但是都是在上层的业务做修改,底下的一些外设接口基本没怎么变过,所以没怎么遇到大问题。唯一遇到的问题就是lin的,这个后面开单独一节来写。最近正好面临工作交接,再次把项目过一遍,整

2020-06-16 19:07:23 27713 15

原创 如何优雅的使用source insight阅读linux源码-Generate_Kernel_Uboot_Project_forIDE

1. 引言source insight是一直在用的代码阅读器了,升级到4.0之后,基本功能都有了,觉得也挺顺手。主要问题就是,在面对很多文件的大工程中,导入文件和同步时间都太长了,尤其是Linux内核,文件又多,而且代码源文件还在linux服务器上,是smb挂载上来的。建一个工程大几个小时,都不敢关,因为有时候下次再一开,工程崩了,我也就崩了。因为这个原因,转去了Vscode一段时间,突然在网上看到了可以精准导入linux源码到SI的方法,赶紧来试一下。2. 资源主要用到的是github上有

2020-06-09 09:58:10 4002 2

原创 【LINUX】i.MX6学习笔记(3) 花式点灯大全 —— 裸机点灯(汇编、C),linux内核点灯,资源分离点灯,设备树点灯,pinctrl点灯,platform点灯 的异同

0. 引言最近一直在做点灯实验,做了各种各样的点灯,感觉其实也是一个循序渐进的过程,通过点灯这么一个小小的工程,一步步的套进linux的各种框架中。所以萌生了一个比较各个工程的点灯区别和联系的想法。 这个学习步骤应该是各家教程都公用的一个流程。原意是想把相关代码和流程全部附上来。后来发现有些繁琐,而且没有意义,因为就是把《【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.4.pdf》教程上的一些流程搬了上来,干脆就不写这些具体的了,只记录一下自己学习这几部分的整理的一个异同点吧。需要源码的

2020-05-20 07:24:03 993

原创 【LINUX】i.MX6学习笔记(2) Linux开发基础知识储备(开发环境 + 编译方式 + 调试环境)

0. 引言因为之前linux的经验基本都在应用层,内核和驱动这块涉及的不是很多,直接做实验感觉还是有很多不很清楚和没有准备好的地方,在这里做一个总结,更像一个流水账的备忘,也可以帮助同样入门经历的朋友,做一些借鉴吧。这部分我可能会写的比较细碎,请大神们无视。1. 开发环境配置1.1 硬件环境1.1.1 开发板开发板用的正点原子 ALTHA 阿尔法 开发板,配置应该是原子主推的一个配置...

2020-05-07 07:06:29 1169

原创 【FreeRTOS】FreeRTOS 源码学习笔记 (6)并发解决 之 临界区(中断临界区)、信号量 分析

信号量自旋锁 + 互斥锁

2020-05-01 10:59:21 1704

原创 【FreeRTOS】FreeRTOS 源码学习笔记 (5) 任务调度器 + vTaskStartScheduler、xPortPendSVHandler、xPortSysTickHandler

1. 引言FreeRTOS的任务调度是个大头,也是一个操作系统的核心。其实个人理解,FreeRTOS调度规则很好理解,原则就是“优先级高抢占”,因为FreeRTOS是一个抢占式实时内核,一定会保证就绪态的高优先级任务可以先运行。所有的调度都是为了实现这个目的来做的。一些个人思考可以看4.1节。2. 原理分析2.1 什么情况会任务切换个人理解,只有当一个更高优先级的任务进入到就绪列表...

2020-04-25 20:05:51 6774 2

原创 【FreeRTOS】FreeRTOS 源码学习笔记 (4) 任务创建xTaskCreate + 常用结构体TCB、xLIST

1. 引言经过上一节移植,我们已经拿到了一个可以用的工程,接下来就可以单步跟踪了。使用FreeRTOS,首先要新建一个任务,我们可以单步跟一下它的运行流程,在调试之前,还是要先把最重要的几个结构体整理一下。(本文初版为2020.4.12,FreeRTOS的代码版本为FreeRTOS Kernel V10.3.1)2. 重要结构体2.1 TCB做FreeRTOS肯定首先要把大名鼎鼎的TC...

2020-04-19 20:25:14 1845

原创 【FreeRTOS】FreeRTOS 源码学习笔记 (3)队列 及 xQueueGenericSend分析

引言本篇又不写调度器了,准备先整理整理“队列“,无他,就觉得这个很有用,自己写应用层代码的时候,队列要用的比较多,之前一直用一个自己写的环形buffer,里面nReadIndex,nWriteIndex,nFreeIndex来管理总觉得不够“官方”,这次看到一个如此成熟的队列,还是忍不住先分析一下。...

2020-04-16 23:48:11 4526 2

原创 【FreeRTOS】FreeRTOS 源码学习笔记 (2)列表项 +一些不容易理解的点(xItemValue、pxIndex、vListInsertEnd…)

1. 引言本来第二节想直接写任务调度的,发现调度器里很多用到的list这个结构体。freeRTOS中的list.c和list.h文件又挺短的(list.c 198行 list.h 412行),就是一个链表,所以作为一个基础知识(软柿子),先补一波。(本文FreeRTOS版本 v10.3.1)2. 结构体list.h里重要的结构体就3个。列表列表项迷你列表项2.1 xL...

2020-04-14 12:50:22 2247

原创 【FreeRTOS】FreeRTOS 源码学习笔记(1) 文件结构 + stm32f103c8t6移植步骤

0. 引言之前freeRTOS用过几次,但是项目赶工的急,一直没有认真的去里面看过,最近正好有空,准备到里面看下源码实现,毕竟核心文件就这么几个,认真看一下流程,对操作系统的雏形也就有一个认识了。而且一些常用的功能,队列,内存管理,信号量之类的,都有,基本上彻底弄懂一个,对以后理解别的也有帮助。1. FreeRTOS介绍FreeRTOS其实不用再多介绍了,现在太火了,主要是免费,感觉很多厂家...

2020-04-11 11:11:43 2777

原创 【stm32】stm32深入思考(2) 之 RAM启动

上一篇做了stm32系统启动流程的整理分析,中间遇到stm32启动模式的选择和原理。中间也遇到一些不理解的地方,于是着手做了实验,在这里记录一下。

2020-04-08 23:00:27 4867

原创 【stm32】stm32深入思考(1) 之 系统启动流程 main之前的过程,__main作用,start.s作用

1. 引言看到这篇文章的应该都是做嵌入式的,都不是新手,可能大家都上手过一些片子,也开发过项目。用下来感觉如何?MCU的门槛是很低的,现在的网上资料一大堆,课程满天飞,很多人都可以快速上手,厂家给的SDK也相对完善,可以说这部分很简单。在这种情况下,只要你懂C语言和一些简单的外设原理,对着demo你就能开发。在这个基础上,怎么样更深一步,真正的从开发中学到东西?而不是单纯的会抄demo而...

2020-04-05 21:35:28 4635 10

原创 【LINUX】i.MX6学习笔记(1) 调试环境搭建(MfgTool) + 学习资料(正点原子 + 韦东山)

引言说起来,和linux打交道也挺久了,最近3年的主要工作都是在linux下做的应用层开发。在做应用层之前,因为做控制算法的原因,很多东西又是在单片机或者DSP上跑的裸核。二者一合并,中间就出现了一个巨大的断层,就是Linux,驱动。其实13年自己就入了第一块arm11的开发板tiny6410,当时资料十分分散,自己又没有认清现实(linux才是王道),就没有花大力气搞,一回首已是百年身,...

2020-03-26 20:10:26 3682 2

原创 【随笔】记录一下为什么一个月没有写博客

疫情期间本想提升自己,正好碰上吾爱破解2月14开放注册,弄了半天注册个账号,结果看到的第一个帖子就是CEMU模拟器+荒野之息,于是下下来体验了一下。。。...

2020-03-17 23:37:14 308 1

原创 【stm32】stm32f1代码中core_cm3、system_stm32f10x、stm32f10x_conf、stm32f10x等文件的作用

1. 前言前面总结了好几篇文件的代码结构和相关知识,总是要实践一下。随便找了一个以前写的Stm32的demo来练练手。顺便先整理一下工程里面一些文件的作用,一直都是从DEMO中直接拿来用,还没有认真的理过。misc.ccore_cm3.c/hstartup_stm32f10x_hd.sstm32f10x_conf.hstm32f10x_it.c/hsystem_stm32f1...

2020-02-05 17:39:14 7903 2

原创 【架构】软件代码的耦合性和内聚性,以几个简单小例子说明

1. 起因这篇文章应该算作前两篇文章的后续思考。在前两篇文章中,考虑到了分层的方法,参考了别人的代码架构。工程代码结构(附带几个demo)嵌入式软件架构设计 模块化 & 分层设计其实我们说到最后,好的代码,我们分层,做模块,无非就是实现一个高内聚和低耦合。举个简单的例子,将某个模块代码直接删除之后,将上层调用处注释,重新编译,是否还能编过?(不考虑功能的运行)如果还能,说...

2020-02-03 21:24:59 7386 2

原创 【架构】嵌入式软件架构设计 模块化 & 分层设计

起因继前一篇介绍了一些别人家的代码架构之后,其实最近实践了一下,还是有些感悟。又参考了一些文档,觉得还是要记录一下,最近整理代码的心得。整理系统架构,主要就是为了:方便移植便于复用模块增加删减方便其实整理代码结构,最主要想实现的就是:高内聚低耦合这样的代码方便移植管理,流程接口明确。一般的架构图主要就是两部分:分层分模块随便上百度搜了一张嵌入式的软件架构图为例...

2020-01-22 23:08:25 29410 1

原创 【架构】工程代码结构(附带NXP、ST官方demo)

目录文章目录目录1. 起因2. Demo结构解析2.1 ST公司的STM32Cube2.2 NXP公司的S32DS1. 起因最近在做我们应用层内部代码从2.0到3.0版本的迁移,除了删减增加模块,规范写法,最主要的就是重新规划了代码的结构。我们代码的特点就是并行了很多项目,这些项目有共同的地方,又有区别。把哪些部分抽出来做共有库,哪些做自己的项目内部,makefile怎么构思(关于makef...

2020-01-14 20:06:58 4495 4

原创 Windows & Ubuntu,软件推荐,小技巧总结,免费内网穿透方案

目录文章目录目录1. 起因2. 家用免费内网穿透方案3. Windows3.1 windows软件推荐3.1.1 绿色软件3.1.1.1 系统工具3.1.1.2 多媒体工具3.1.1.3 远程工具3.1.1.4 调试工具3.1.2 驱动3.1.3 系统工具3.1.4 开发工具3.1.5 其他4. Ubuntu4.1 Ubuntu遇到的问题解决4.2 Ubuntu软件推荐1. 起因昨天给ubu...

2019-12-30 15:10:58 1858 1

原创 【5744】MPC5744入门笔记(4)基于Can的bootloader实现

0. 目录文章目录0. 目录1. 预备知识1.1 外设接口1.2 启动原理1.3 跳转原理1.4 制作bin文件2. 升级2.1 flash划分2.2 升级协议2.3 升级机制3. 参考链接4. 系列文章1. 预备知识1.1 外设接口基于can接口的bootloader实现,要用的物理接口就是can接口和flash操作接口。can包含can收can发,进行与上位机的交互。flash...

2019-12-23 11:02:47 5467 10

原创 环形队列的实现

0. 目录文章目录0. 目录1. 起因2. 概念3. 实现3.1 结构体3.2 存取机制3.2.1 存3.2.2 取4. Kfifo5. 参考链接1. 起因做嵌入式的过程中,很容易用到环形队列来做一个buffer缓存的管理。个人感觉这么几种场景用的比较多。多线程场景比如A模块给B模块发数据,B模块通过中断实时收取,但是不能实时处理,就需要进行缓存,在另外一个线程中处理。输入速率不稳定...

2019-12-16 21:19:51 944

原创 Modbus RTU协议各知识点入门 + 实例

文章目录1. 起因2. 几个难点2.1 CRC的高低位3. 介绍3.1 分类1. 起因最近在做一个项目,我们的设备使用485作为从机与主机PLC通信,用到了modbus,因此整理了一份modbus的资料。其实modbus还是很简单的,虽然有些名词初看不知道是啥,看懂之后发现就是绕人用的,换个名词就很清晰易懂的(对于我这种不做PLC的人)。2. 几个难点2.1 CRC的高低位Modbus......

2019-12-11 23:19:24 22421 2

原创 【5744】MPC5744入门笔记(3)Flash实验

做完入门笔记的(2)(3),基于Can的bootloader所需要的外设接口基本上就都调通了。

2019-12-02 11:25:41 5708 13

原创 【5744】MPC5744入门笔记(2)CAN实验

0. 目录文章目录0. 目录1. 引言2. 实验2.1 环境2.2 准备工作2.3 can实验2.3.1 引脚2.3.2 步骤2.3.3 代码2.3.4 代码解析1. 引言为什么在入门笔记第2篇就直接写can,而是跳过了GPIO、uart这些常用外设呢?原因很简单,因为我最急着要用。作为车载产品,can肯定是最先调通的。而这一系列文章就是调通一个外设,总结一个。而已。2. 实验2......

2019-11-29 10:20:05 8673 22

原创 【5744】MPC5744入门笔记(1)开发环境搭建

0. 目录

2019-11-28 14:40:37 12013 20

原创 typedefs.h 数据类型 定义

1. 引言以前看到一些代码这么写,还觉得多事。心里觉得大家都用int unsigned int 这些标准结构不就好了。各个编译器都支持。后来做了一些别的项目,接触 了32位平台,64位平台,嵌入式,windows平台…就发现代码的移植性太差了。一旦结构体大小出错,就非常容易出问题。为了提高代码的移植性,还是应该用这种类型定义。2. 注意另外,提及两个注意事项:结构体中不允许包含...

2019-11-28 10:09:01 1561

原创 内存分区(堆栈作用)

0. 目录文章目录0. 目录1. 结论1.1 作用1.2 位置2. 疑问2.1 名词解释2.2 混淆概念3. 堆栈3.1 混淆概念3.2 概念3.3 函数调用过程3.3.1 调用过程3.3.2 返回过程4. 验证实验参考链接1. 结论直接给结论:stack栈heap堆bssdatatext1.1 作用stack栈存放局部非静态变量,用来保存现场(堆栈作用)从高地址...

2019-11-04 19:41:08 1089

原创 【姿态】姿态解算学习笔记(1) 总纲思考

0. 目录文章目录0. 目录1. 起因2. 名词解释3.个人理解参考链接1. 起因读研的时候,当时有在汉王实习,做一款云笔(其实观点很超前,想用消费级的mems9轴传感器+光流来识别毫米级别的位移),最后毕业的时候项目也没结,倒是和刘老每周见面混的面熟。当时是初次接触到了姿态解算相关的知识。后来在自动化专业,又接触了无人机的一些东西,又涉及到了这部分。本来以为工作来做嵌入式之后,这些算法...

2019-10-25 21:19:17 572

原创 【S32K】S32K144入门笔记(1) 从零开始进行开发环境搭建

1. 起因算起来,接触S32K144有1个月了,突发的项目需求让使用这个片子,当时真是一头雾水。在此之前的自己是一直使用ST的片子,感觉这个片子的好处就是系列比较全,不同的需求去找不同的型号就行,而且坑被人踩的差不多了,基本上问题都能找到类似的。这次遇到的问题就是,ST没有车规的型号。必须要换。其实个人认为,不同的芯片,真很难说什么好什么不好,我自认做项目还没能抠到芯片自身性能的区别而导致一...

2019-10-21 12:42:13 40369 8

原创 【随笔】第一篇

动念很久很久没有写博客了。曾经也是个文艺青年,看新概念,写小说,也会写一些煽情的小文章,还能写一点情诗去撩女神。不过后来09年去了北理之后,这项技能就生疏了(因为周围没女生),至今已经十年没用了(好在高中的女神现在是我媳妇了,当年没白写)。关于技术博客,最早的时候,会把笔记整理之后写到笔记本上,当时觉得画图比较麻烦,但是确实记忆的比较清晰。后来用了云笔记之后,很多时候都是直接记录在自己的云笔...

2019-10-14 15:33:45 311

终极内存技术指南(存储时代水印)

用于博客引用。 本书写的十分成体系,详细,还有比较易懂的仓库例子。就是有点老,DDR3后面的没怎么找到,不过原理都一样了。关于内存入门,非常非常推荐的一本书。反正是我读过最系统最好的(中文)。 图片有“存储时代”水印。

2021-02-08

soucre insight_sublimetext_FixHighlight.CF3

我自己一直在用的,source insight 3.5 的黑色主题。仿sublime的。颜色很好看。是基于 https://download.csdn.net/download/z21109/9444022 此版本,修改了无法高亮bug的。 支持大家去下载原作者的,我只是基于他的版本改动了一小点bug。如果有不会改的朋友可以用我这个方便一点。

2020-07-23

STC单片机在UV4中的头文件数据库STC.cdb下载

uvision4中,新建工程没有STC单片机的选择项,需要我们手动添加这个数据库到安装目录下,再修改一下TOOLS.INI文件。 头文件资源就是这个,具体的方法在百度文库中有。

2014-07-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除