cortex
文章平均质量分 94
御林你好
这个作者很懒,什么都没留下…
展开
-
嵌入式网络设备一次盲点补报的开发经验(二)
作者:良知犹存转载授权以及围观:欢迎添加微信公众号号:Conscience_Remains总述曾经开发的时候遇到这样一个情况,我们的设备是车载设备,在车辆行驶过程中需要实时上报车辆数据,但是由于用的网络端是2G网,在行驶过程中,会遇到信号不好导致网络中断的情况,最早时候因为配置联网状态机很快,重联网时间很小,我直接就选择重联网之后再进行上报。可是在实际使用过程中发现,基站的切换、网络信号不好都会导致网络中断,重联网机制也不是每次都很迅速。所以开始考虑将数据本地保存,等待联网成功之后再次进...原创 2020-07-29 09:17:36 · 203 阅读 · 0 评论 -
嵌入式网络设备一次盲点补报的开发经验(一)
作者:良知犹存转载授权以及围观:欢迎添加微信号:Conscience_Remains总述曾经开发的时候遇到这样一个情况,我们的设备是车载设备,在车辆行驶过程中需要实时上报车辆数据,但是由于用的网络端是2G网,在行驶过程中,会遇到信号不好导致网络中断的情况,最早时候因为配置联网状态机很快,重联网时间很小,我直接就选择重联网之后再进行上报。可是在实际使用过程中发现,基站的切换、网络信号不好都会导致网络中断,重联网机制也不是每次都很迅速。所以开始考虑将数据本地保存,等待联网成功之后再次进行补报...原创 2020-07-28 09:10:50 · 214 阅读 · 0 评论 -
各个复位标志解析,让我们对MCU的程序的健康更有把控
作者:良知犹存转载授权以及围观:欢迎添加微信公众号:Conscience_Remains总述曾经开发的时候遇到这样情况,我们开发的设备需要长时间工作上报信息,但是我们在后台查看上报数据,发现设备总是有断开的情况。因为是远程的设备无法进行现场查看,这个时候我们就用到了MCU的复位的状态解析上报,辅助我们进行诊断故障的来源,可能是程序到死循环,可能是程序hardfault,也可能硬件电源不稳定导致的复位。综合上面的要求,我们分析一下STM32相应的寄存器,以及讲解相关函数使用方法...原创 2020-07-15 23:37:17 · 1413 阅读 · 0 评论 -
CubeMX create CAN
一直用CubeMX做一些配置底层代码的工作,用来测试一些外设。学习CubeMX一直用的是微雪的资料,很良心指导,也分享给 大家。但是其中在CAN的配置的时候发现,由于HAL库的更新,微雪部分代码没有及时更新,所以我在CAN测试的时候发现指导的代码无法使用. 这边重新重新配置一下,分享给大家,其中配置时候,也参考了一位朋友的博客,大家也可以参照的看一下.研究归正传...原创 2019-12-21 21:08:15 · 317 阅读 · 0 评论 -
Cortex-M0系统滴答定时器Systick详解
上图是LPC1114系统滴答定时器(SysTick)的结构图。系统滴答定时器位于Cortex-M0内核中,也就是说,不论是LPC1114,还是其他的Cortex-M0内核单片机,都有这个系统定时器。其存在的主要目的是为嵌入式操作系统提供100Hz(即10ms)的定时节拍。当然,也可以做为其它的普通定时等其他用途。下面是LPC1114用户手册上列举出的一些用途,你可以了解了解。可编程设置频率...转载 2019-12-12 21:33:11 · 6206 阅读 · 3 评论 -
STM32F0XX DMA串口发送数据
**前言:**最近在接手一个安排的时候,需要修改之前的一些代码的外设接口,然后发现之前有部分关于USART通过DMA收发数据的部分功能,修改移植的时候发现有些需要注意的事项,以及解释的,做一篇小笔记吧,博主使用的单片机是STM32f071。USART有三种模式进行传输:轮询、中断、以及DMA。轮询模式CPU不断查询IO设备,如设备有请求则加以处理。例如CPU不断查询串口是否传输完成,如传输...原创 2019-12-09 22:12:25 · 1228 阅读 · 0 评论 -
浅析STM32 Bootloader设计
不需要拆机就能对产品进行固件升级是很多人想要的效果,不仅方便而且节省精力和成本。那么如何完成这项工作呢?接下来所介绍的Bootloader就可以完成这项工作,通过Bootloader引导程序完成固件的升级。下面来浅析STM32Bootloader设计。本文引用地址:http://www.eepw.com.cn/article/174370.htm 设计思想 由Bootloader...转载 2022-10-31 11:44:10 · 981 阅读 · 0 评论 -
ARM Cortex-M底层技术(十四)KEIL MDK 调试技术-1 【调试技术简介】
ARM Cortex-M底层技术(十四)KEIL MDK 调试技术-1【调试技术简介】 最近懒癌上身,N久都没有写东西了,我对不起祖国,对不起党,刚好赶在十一,祖国都69(注意是岁数不是姿势……)了,我实在不好意思再偷懒了,行了,不瞎BB了,进入正题,承接之前~,其实关于分散加载还有一些东西木有说清楚,煮药是分散加载的点太碎,也木有在事先构建好一个体系,所以呢可能说的有点乱,以后...转载 2019-10-31 11:07:55 · 243 阅读 · 0 评论 -
ARM Cortex-M底层技术(十三)手把手教你写分散加载
ARM Cortex-M底层技术(十三)手把手教你写分散加载 还记得之前教大家写的启动代码吗?木看过滴,出门左转,第四篇【编写自己的启动代码】,当然仅仅能编写自己的启动代码怎么够,说了辣么多分散加载的东东,是时候检验一下我们的水平了,合上书,来出题考试了~【自己编写分散加载】。 来司机们,将装B进行到底~ 首先,看看我们之前第四...转载 2019-10-31 11:07:03 · 873 阅读 · 0 评论 -
ARM Cortex-M底层技术(十二)KEIL MDK 分散加载-堆栈与预处理器
在分散加载中处理堆栈:分散加载机制提供了一种方法,用于指定如何在映像中放置代码和静态分配数据。 应用程序的堆栈和堆是在 C 库初始化过程中设置的。 通过使用特别命名的ARM_LIB_HEAP、ARM_LIB_STACK 或 ARM_LIB_STACKHEAP 执行区,可以调整堆栈和堆的放置。 此外,如果不使用分散加载描述文件,则可以重新实现__user_initial_stack...转载 2019-10-31 11:06:04 · 742 阅读 · 0 评论 -
ARM Cortex-M底层技术(十一)KEIL MDK 分散加载示例3-单独函数/变量的指定加载
分散加载示例3-单独函数/变量的指定加载小编我一向主张在实战中学习,不主张直接去去学习规则&定义,太枯燥,在实际应用中去摸索,才会真正理解具体的技术细节,下面我们就通过实际的简单用例来搞清楚分散加载。将函数和变量放到特定的指定加载地址的方法: 通常,编译器通过单个源文件生成RO、RW和ZI节。要将单个函数或者数据固定放在特定的地址上,我们必须允许链接...转载 2019-10-31 11:05:05 · 393 阅读 · 0 评论 -
ARM Cortex-M底层技术(十)KEIL MDK 分散加载示例2-代码加载到片内SRAM中运行以及部分规则
KEIL MDK 分散加载示例2-代码加载到片内SRAM中运行&部分规则 小编我一向主张在实战中学习,不主张直接去去学习规则&定义,太枯燥,在实际应用中去摸索,才会真正理解具体的技术细节,下面我们就通过实际的简单用例来搞清楚分散加载。简单示例这个功能是非常有用的,这个小编我之前的文章提过,是一种可以显著增加程序运算速度的方法,所以比较常用,可...转载 2019-10-31 11:03:53 · 497 阅读 · 0 评论 -
ARM Cortex-M底层技术(九)KEIL MDK 分散加载示例1-更改程序运行基址
KEIL MDK 分散加载示例1-更改程序运行基址小编我一向主张在实战中学习,不主张直接去去学习规则&定义,太枯燥,在实际应用中去摸索,才会真正理解具体的技术细节,下面我们就通过实际的简单用例来搞清楚分散加载。更改程序运行基址 我们先来做一个最简单的示例,然后逐步深入。这里选择一颗简单一些的MCU,LPC824,一颗M0+作为示例(因为其...转载 2019-10-31 10:58:40 · 998 阅读 · 0 评论 -
ARM Cortex-M底层技术(八)KEIL MDK 分散加载-2-语法
KEIL MDK 分散加载的结构-2-语法语法、枯燥的、烦人的语法……,但是有些时候木有办法,我本来也不想写这些东西,但确实绕不过去,我认为把它当成一种工具比较合适,了解大概结构以及基本的语法,一些细节没必要记的那么清楚,遇到问题的时候知道去哪里查就好了,这部分东西来自Keil的帮助文档,帮助文档中内容更加丰富也更加复杂,我节选出了一部分,了解这些基本可以搞定绝大多数应用,节选了部分关键...转载 2019-10-31 10:57:31 · 329 阅读 · 0 评论 -
ARM Cortex-M底层技术(七)KEIL MDK 分散加载-1-分散加载的结构
KEIL MDK 分散加载的结构 1、我们先来解剖一只麻雀 很多人会说我做项目时没用过分散加载啊,可能有些人甚至都不知道它的存在。事实上,开发环境会默认生成一个分散加载文件(或者叫链接器描述文件),你使用的可能就是这个默认的分散加载文件,先来看一下Keil默认生成的分散加载文件,使用LPC54608随便找了一个示例代码用Keil生成了一个,如下图所示:...转载 2019-10-31 10:55:49 · 363 阅读 · 0 评论 -
ARM Cortex-M底层技术(六)分散加载的简单介绍
分散加载原理的简单介绍分散加载我自己在最初学习这部分内容的时候在网上找吐血了都没找到很靠谱的深入的文章,基本看之前不懂,看完了就更不懂了,后来只能硬着头皮自己慢慢摸索,也花了很多功夫,这里跟大家系统的分享一下,小编我会分成几篇文章来讨论这部分内容,争取做到让各位看官老爷看过我的文章后能够了解其原理并应用到自己的项目中去。前面N篇文章总是提及的分散加载我们将在接下来的几篇文档里面把...转载 2019-10-31 10:54:03 · 585 阅读 · 0 评论 -
ARM Cortex-M底层技术(一)ARM Cortex-M系列微控制器概况
原文链接:https://blog.csdn.net/weixin_39118482/article/details/79424316ARM Cortex-M底层技术(一)ARM Cortex-M系列微控制器概况写在前面的话: 近些年来ARM Cortex-M阵营各厂商(ST、NXP、ATMEL、Freescale……)发布新产品的节奏越来越快,以及微控制器应用普及程度的加深,越...转载 2019-10-30 09:41:10 · 1230 阅读 · 0 评论 -
ARM Cortex-M底层技术(五)编译器编译内核原理以及其应用的简单介绍
编译器编译内核原理以及其应用 上篇文档简要介绍了一下编译器的编译内核,当然介绍的很简单,没有深入进去,俗话说不深入怎么High,所以这里我们深入进去搞一下,看看里面都有些什么有用的东东。 这里以市面上用的最多的Keil MDK为例,我们来研究下。 1、先上一张老图,然后我们仔细看下这个器、那个器的都是干啥的: 上一篇文章...转载 2019-10-30 11:14:41 · 953 阅读 · 0 评论 -
ARM Cortex-M底层技术(四)编写自己的启动代码
原文链接:https://blog.csdn.net/weixin_39118482/article/details/79650305编写自己的启动代码上一篇扯了一些关于启动代码的应用方面的内容,列举了4种我自己遇到过的常见的启动代码应用,当然实际的应用肯定不止上一篇文章中提到的那几种,关键是大家懂了原理后根据实际的需求添加自己的应用,这个才是关键。 这一片文章主要...转载 2019-10-30 11:04:48 · 816 阅读 · 2 评论 -
ARM Cortex-M底层技术(三)启动代码的使用
Cortex-M启动代码的使用 上一篇扯了一些关于启动代码的原理,了解了额原理不去使用意义就没有那么大了,了解了启动代码不是终极目的,我们的目的是深入理解Cortex-M系列MCU的底层原理,并应用到实际的产品中,加速开发,提升产品稳定性;下面就小编我的实际使用经历来看一下,启动代码的具体应用。 启动代码的本质是在程序进入用户代码(main函数)之前初始化向量表、完成分散...转载 2019-10-30 09:55:51 · 811 阅读 · 0 评论 -
ARM Cortex-M底层技术(二)启动代码原理分析
ARM Cortex-M底层技术(二)Cortex-M启动代码原理分析写在前面的话: 近些年来ARM Cortex-M阵营各厂商(ST、NXP、ATMEL、Freescale……)发布新产品的节奏越来越快,以及微控制器应用普及程度的加深,越来越多的开发者把更多精力投注在应用层开发上,花在对底层技术上的时间越来越少。小编我希望借助我之前对底层的一些积累,可以帮到大家快速的建立对C...转载 2019-10-30 09:43:36 · 427 阅读 · 0 评论