自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 资源 (25)
  • 收藏
  • 关注

转载 IAR环境下STM32F103ZET6+IAP方案的实现

一、什么是IAP,为什么要IAP      IAP即为In Application Programming(在应用中编程),一般情况下,以STM32F10x系列芯片为主控制器的设备在出厂时就已经使用J-Link仿真器将应用代码烧录了,如果在设备使用过程中需要进行应用代码的更换、升级等操作的话,则可能需要将设备返回原厂并拆解出来再使用J-Link重新烧录代码,这就增加了很多不必要的麻烦。站在

2017-11-30 16:25:12 3342

转载 怎么使用stm32写IAP的bootloader和APP

Stm32的bootloader和App的编写注意事项1、 怎么分配bootloader和app的空间2、 怎么得到数据和写入flash3、 怎么从bootloader跳转到app4、 怎么设置App的中断向量5、 App中怎么生成bin文件6、程序执行的流程 1、怎么分配bootloader和app的空间

2017-11-13 08:49:20 4197 1

转载 RT-thread内核之定时器管理

一、前言rt-thread采用软件定时器线程模式或硬件定时器中断模式来实现系统定时器管理。而rt-thread操作系统在默认情况下是采用的硬件定时器中断模式的方式,用户可以通过宏定义RT_USING_TIMER_SOFT来修改定时器管理模式。硬件定时器中断模式是利用MCU芯片本身提供的硬件定时器功能,一般是由外部晶振提供给芯片输入时钟,芯片向软件模块提供一组配置寄存器,接受控制输入

2017-05-31 15:47:04 1501

转载 晶振与负载电容总结

1.匹配电容-----负载电容是指晶振要正常震荡所需要的电容。一般外接电容,是为了使晶振两端的等效电容等于或接近负载电容。要求高的场合还要考虑ic输入端的对地电容。一般晶振两端所接电容是所要求的负载电容的两倍。这样并联起来就接近负载电容了。2.负载电容是指在电路中跨接晶体两端的总的外界有效电容。他是一个测试条件,也是一个使用条件。应用时一般在给出负载电容值附近调整可以得到精

2017-04-26 17:08:56 3637

转载 一个STM32F0 的IAP应用问题

Stm32f0系列MCU中断矢量表的定位跟STM32其它系列相比有点差异,即M0系列没有像其它M3/M4/M0+系列所具备的中断矢量表重定位寄存器,其中断矢量表不能借助矢量重定位寄存器简单修改实现。所以Stm32f0 IAP的过程会跟其它系列的STM32芯片的IAP动作有所不同。我们知道,做IAP往往需要两部分代码,一部分是用来升级的IAP程序,一部分用来运行用户实际应用功能的应用程序

2016-11-07 15:32:55 5503 1

转载 使用USART接口进行STM32F0的在线升级(AN4065)-基于标准库的STM32F070的IAP移植手记

1 前言STSW-STM32116是ST官网基于标准库的针对STM32F0的USART进口IAP示例程序,下载链接:http://www.stmcu.org/document/detail/index/id-213120工程原本是针对STM32F051,本文将介绍如何移植到STM32F070,并针对移植的过程中的问题逐个处理。2 KEIL下移植IAP程序一般分为两个,一个是IA

2016-11-07 15:24:45 1894

转载 STM32F0xx在增加IAP后APP为什么在main函数中要重映射SRAM

1 前言在使用F0的片子在增加IAP后,我们经常发现,原来的APP必须增加一段代码,将中断向量表从内部FLASH拷贝到SRAM后再执行REMAP到SRAM,这样操作后APP才能正常运行,这一过程一直困扰着蝶粉们,为什么需要这样呢?本文将针对这一问题为大家解惑。2 问题详细描述比如F0的下面这部分代码:#define APPLICATION_ADDRESS (

2016-11-07 15:17:00 4099 1

转载 STM32的BootLoader 从SD卡更新固件

目 录1. 前言2. 初识BootLoader2.1     百度百科的BootLoader2.2     BootLoader的简单理解2.3     BootLoader的作用3. BootLoader预备知识3.1     复位序列3.1.1      栈指针3.1.2      复位向量3.2     重定位中断向量表3.2.1      STM

2016-11-04 20:11:44 3819

转载 STM32 IAP升级遇到的问题总结

IAP的源码等资料我上传了,压缩包内有12个文件,,http://download.csdn.net/detail/f907279313/7524849(要积分的辛苦收集的你们就给点积分吧)还有另一篇博客总结的IAP:http://blog.csdn.net/super_demo/article/details/32133257一,串口通信问题1,串口通信两端的TTL电平要

2016-11-03 14:44:34 9125 1

转载 STM32 IAP升级功能编写初期的一些困惑与疑问---完成功能后的总结

IAP的源码等资料我上传了,压缩包内有12个文件,http://download.csdn.net/detail/f907279313/7524849还有另一篇博客总结的IAP:http://blog.csdn.net/super_demo/article/details/32086541一,网上下载的例程,跳转部分的代码有差异,尤其是用的汇编那句eg:①Jump_

2016-11-03 14:40:08 4978

转载 STM32的bootloader IAP编程

不需要拆机就能对产品进行固件升级是很多人想要的效果,不仅方便而且节省精力和成本。那么如何完成这项工作呢?接下来所介绍的Bootloader就可以完成这项工作,通过Bootloader引导程序完成固件的升级。下面来浅析STM32Bootloader设计。首先谈谈stm32的ISP和IAP区别和联系。ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以编...

2016-10-17 10:31:16 1287

转载 从uart到serial-ringbuff(环形缓存)

最近在写一个serial 的应用想起以前写过的一些单片机上的uart 程序,有着许许多多的圈圈点点的,也就来扒一扒串口机制的事情了。 学习单片机都会接触到串口这个东西,多数的教程都是讲讲如何把寄存器配置好,然后可以发出数据、接收数据,而对如何应用基本完全不谈。而其实不管是哪一类CPU,串口的模式基本相同,毕竟这东西从单片机诞生至今也算是个白发老头的年纪了。uart 寄存器配置不说,每个CPU有自己...

2016-10-17 10:10:01 9147

转载 stm32 IAP + APP合成一个烧写文件

(扩展-IAP主要用于产品出厂后应用程序的更新作用,上一篇博文详细的对IAP 升级程序做了详细的分析http://blog.csdn.net/yx_l128125/article/details/12992773,考虑到出厂时要先烧写IAP  再烧写APP应用程序要烧写2次增加工人劳动力基础上写了“STM32 IAP+APP ==>双剑合一”链接稍后发,希望通过IAP程序的hex 文件 和 APP

2016-10-17 09:40:56 10939 1

转载 STM32 IAP 在线升级详解

(扩展-IAP主要用于产品出厂后应用程序的更新作用,考虑到出厂时要先烧写IAP  再烧写APP应用程序要烧写2次增加工人劳动力基础上写了“STM32 IAP+APP ==>双剑合一”链接稍后发)一、在进入主题之前我们先了解一些必要的基础知识----stm32系列芯片的种类和型号:startup_stm32f10x_cl.s 互联型的器件,STM32F105xx,STM32F

2016-10-17 09:25:45 1899

转载 I2C死锁原因及解决方法

IIC死锁

2016-09-02 14:25:18 3216

转载 rt-thread的IPC机制之信号量源码分析

rt-thread操作系统的IPC(Inter-Process Communication,进程间通信)包含有信号量,互斥锁,事件,邮箱,消息队列.本文主要针对信号量.信号量是用来解决线程同步和互斥的通用工具,和互斥量类似,信号量也可用作资源互斥访问,但信号量没有所有者的概念,在应用上比互斥量更广泛。信号量比较简单,不能解决优先级翻转问题,但信号量是一种轻量级的对象,比互斥量小巧、灵活。因

2016-08-10 20:27:35 1034

转载 rt-thread的IO设备管理系统源码分析

rt-thread的IO设备管理模块为应用提供了一个对设备进行访问的通用接口,,并通过定义的数据结构对设备驱动程序和设备信息进行管理。从系统整体位置来说I/O管理模块相当于设备驱动程序和上层应用之间的一个中间层。I/O管理模块实现了对设备驱动程序的封装:设备驱动程序的实现与I/O管理模块独立,提高了模块的可移植性。应用程序通过I/O管理模块提供的标准接口访问底层设备,设备驱动程序的升级不会

2016-08-10 20:25:47 1080

转载 rt-thread的空闲线程源码分析

rt-thread的空闲线程在是线程空闲时执行的,它的主要操作是进行“垃圾回收”,这里的“垃圾”是待close掉的线程。1 空闲线程的实现在rt-thread线程启运时,系统会初始化空闲线程并启动它:[cpp] view plain copy/**  * @ingroup SymstemInit  *  * This 

2016-08-10 20:22:25 637

转载 时钟中断是rt-thread的线程调度器的驱动力

1 系统时钟中断驱动引擎rt-thread操作系统中当线程时间片耗尽,或是当线程sleep一段时间后唤醒再被调度,此过程又是如何进行的呢?到底是谁来驱动这一过程的呢?答案是时钟中断源。且来看看时钟中断例程:在bsp/stm32f20x/drivers/board.c源文件中存在这么一个时钟中断例程代码:(这里以stm32f20x的MCU为例)[c

2016-08-10 20:21:04 900

转载 rt-thread线程调度器获取当前最高优先级线程算法过程分析

上一章大概分析了rt-thread操作系统的线程调度器的源码,此文具体来讲讲rt-thread在调试时,是如何获取获得当前最高优先级线程的算法过程。之前已提到过,rt-thread采用了一个位图来实现此过程,在具体分析此过程之前,我们首先来看看此位图的结构及相关的一些参数变量。1 位图结构及相关参数1.1 位图结构在rt-thread的源码文件scheduler.c中在

2016-08-10 20:20:12 904

转载 rt-thread线程调度器源码分析

1 前言RT-Thread中提供的线程调度器是基于全抢占式优先级的调度,在系统中除了中断处理函数、调度器上锁部分的代码和禁止中断的代码是不可抢占的之外,系统的其他部分都是可以抢占的,包括线程调度器自身.系统总共支持256个优先级(0 ~ 255,数值越小的优先级越高,0为最高优先级,255分配给空闲线程使用,一般用户不使用。在一些资源比较紧张的系统中,可以根据情况选择只支持8个或32个

2016-08-10 20:19:12 1053

转载 rt-thread线程源码分析

rt-thread操作系统是一个多线程的操作系统,线程对于rt-thread来说是一个很重要的概念,因此,必须掌握它。1 线程控制块的数据结构[cpp] view plain copy/**  * Thread structure  */  struct rt_thread  {      /* rt object *///这

2016-08-10 20:17:37 1714

转载 rt-thread的定时器管理源码分析

1 前言rt-thread可以采用软件定时器或硬件定时器来实现定时器管理的,所谓软件定时器是指由操作系统提供的一类系统接口,它构建在硬件定时器基础之上,使系统能够提供不受数目限制的定时器服务。而硬件定时器是芯片本身提供的定时功能。一般是由外部晶振提供给芯片输入时钟,芯片向软件模块提供一组配置寄存器,接受控制输入,到达设定时间值后芯片中断控制器产生时钟中断。硬件定时器的精度一般很高,可以达到

2016-08-10 20:16:26 1440

转载 rt-thread的内核对象管理系统分析

rt-thread采用内核对象管理系统来访问和管理所有内核对象.首先来看看rt-thread的内核对象是如何定义的:1 数据结构1.1 对象控制块在include/rtdef.h头文件中可以找到内核对象有结构定义:[cpp] view plain copy/**  * Base structure of Kernel object

2016-08-10 20:14:45 2300

转载 rt-thread的小内存管理算法分析

rt-thread的小内存管理是rt-thread操作系统默认堆内存管理算法,是一种简单的内存分配算法,当有可用的内存的时候,会从中分割一块来作为分配的内存,而剩下的则返回到动态内存堆中.此算法采用了一个静态链表来实现的,其源码文件在根目录下的src目录下,包含mem.c和mem.h两个文件.1 数据结构小内存管理算法将内存看成是一个个内存块:[cpp] v

2016-08-10 20:12:10 3976 1

转载 ARM中的RO段、RW段和ZI段的区别

1 前言    一直以来对于ARM体系中所描述的RO,RW和ZI数据存在似是而非的理解,这段时间对其仔细了解了一番,发现了一些规律,理解了一些以前书本上有的但是不理解的东西,我想应该有不少人也有和我同样的困惑,因此将我的一些关于RO,RW和ZI的理解写出来,希望能对大家有所帮助。    要了解RO,RW和ZI需要首先了解以下知识。2 ARM程序的组成    此处所说的“ARM程序”

2016-08-10 19:52:20 431

转载 蓝牙4.2新增联网、多对多Mesh技术或将取代Zigbee?

英国剑桥无线半导体(CSR)针对Bluetooth(蓝牙)Smart开发的网格(MESH)技术,将可让Bluetooth装置/节点(Node)的资讯传输距离大幅度延伸,并与智慧家电接轨,提供更全面的应用服务。2014年12月,蓝牙技术联盟在全球公布蓝牙 4.2标准。1、什么是Mesh?无线Mesh网络,也称为“多跳”网络,它是一种与传统无线网络完全不同的新型无线网络技术。

2016-08-01 10:38:56 5309

转载 蓝牙 Mesh会是最好的物联网协议吗?

各厂商蓝牙Mesh技术的到来,让不少智能家居厂商看到新的市场和希望,这其中不仅是它在智能家居的应用,更有它在Bluetooth Smart所涉及的所有垂直应用领域的潜力。那什么是mesh网络呢?蓝牙 Mesh又是怎么回事?它会一统物联网协议吗?下面为大家详细分析一下。  Mesh网络的定义  它是一种与传统无线网络完全不同的新型无线网络技术,由mesh routers(路由器)和m

2016-08-01 10:03:33 6710

转载 结构体中动态内存的管理(malloc和free)

C语言中内存的管理主要是依据malloc和free实现的,其中malloc主要是实现内存的分配,而free则是实现内存的释放。虽然这是我们已经很熟悉的,但是还是存在一些问题。特别是当结构体中存在指针的情况下,各种问题也就会展现出来。其中最大的问题是:结构体中指针变量没有指向一块合法的内存空间,就对指针参数进行操作,这也是很多C语言程序员经常犯的错误。简单的实例如下:

2016-07-26 10:21:12 1263

转载 RT-Thread互斥锁

互斥锁和信号量很相似, RT-Thread 中的互斥锁也有静态和动态之分,和互斥锁有关的操作如下:初始化—rt_mutex_init()(对应静态互斥锁);建立—rt_mutex_create()(对应动态互斥锁);获取—rt_mutex_take();释放—rt_ mutex_release();脱离—rt_mutex_detach()( 对应静态信号量) ;删除—r

2016-07-13 21:28:00 7877

转载 RT-Thread信号量实际运用—按键点灯

上面是魔笛开发板上 LED 和按键的 IO 分布,我们通过信号量的方法来同步按键线程和LED 线程,实现当 enter 键按下后,点亮或关闭 LED 的动作。/************************************************************************************************************

2016-07-13 21:26:05 4721

转载 RT-Thread信号量的基本操作

抽象的来讲,信号量的特性如下:信号量是一个非负整数(车位数),所有通过它的线程/进程(车辆)都会将该整数减一(通过它当然是为了使用资源),当该整数值为 0 时,所有试图通过它的线程都将处于等待状态。在信号量上我们定义两种操作: take ( 获取) 和Release(释放)。当一个线程调用 take 操作时,它要么得到资源然后将信号量减一,要么一直等下去(指放入阻塞队列),直到信号量大于等于一

2016-07-13 21:24:52 8418

转载 RT-Thread的线程间同步

禁止系统调度上一节《 多线程导致的临界区问题》中由于 test1 线程被 test2 线程打断,才导致了我们没有得到预期的结果,我们一般可通过关闭中断和调度器上锁这两种简单的途径来禁止系统调度,防止线程被打断,从而保证临界区不被破坏。1、 关闭中断线程中关闭中断保护临界区的结构如下:#include #include #include "test.h"rt_ui

2016-07-13 21:24:01 690

转载 RT-Thread多线程导致的临界区问题

临界资源是指一次仅允许一个线程使用的共享资源。不论是硬件临界资源,还是软件临界资源,多个线程必须互斥地对它们进行访问。每个线程中访问临界资源的那段代码称为临界区( Critical Section),每次只准许一个线程进入临界区,进入后不允许其他线程进入。多线程程序的开发方式不同于裸机程序,多个线程在宏观上是并发运行的,因此使用一个共享资源是需要注意,否则就可能出现错误的运行结果。#i

2016-07-13 21:21:03 2278 1

转载 RT-Thread的CPU使用率计算

CPU 的使用率一般是我们比较关心的问题,在这里我们就用空闲线程的钩子函数去统计 CPU 的使用率,并通过串口打印出来。首先我们在初始化线程中设置好钩子函数,并在 LED 线程中给系统人为的加入很多“事情”,让其占用率变高,方便统计,然后每个 1 秒中打印一次 CPU 使用率。其中 CPU 的使用率我们是根据 CPU 的空闲率反推出来的。#include #include #

2016-07-13 21:20:15 4139 1

转载 RT-Thread创建静态、动态线程

RT-Thread 实时操作系统核心是一个高效的硬实时核心,它具备非常优异的实时性、稳定性、可剪裁性,当进行最小配置时,内核体积可以到 3k ROM 占用、 1k RAM 占用。 RT-Thread 中的“线程”一般由三部分组成:线程代码(函数)、 线程控制块、 线程堆栈。 /* 指向线程控制块的指针*/static struct rt_thread led

2016-07-13 21:15:48 8086 2

转载 延长FLASH和EEPROM芯片写入次数的小方法

开发电子产品时,常常需要断电后保存某些数据,这就需要使用FLASH或EEPROM芯片,这两种芯片,可擦除的次数是有限制的,通常FLASH为10万次,EEPROM要多一点,为100万甚至1000万次。FLASH的擦除不能单个字节进行,有一个最小单位,存储容量相对比较大,适合大量数据的存储;EEPROM可以单个字节进行擦除,存储容量不大,只适合存储少量的设置数据。        先以FLA

2016-07-11 14:56:47 28308 4

转载 【RT-Thread学习笔记 6】RT-Thread下的串口驱动程序分析

编写本文稿的目的,在于通过分析stm32平台上的串口中断源码,学习RTT中如何编写中断处理程序如何编写RTT设备驱动接口代码了解串行设备的常见处理机制先以RTT官方源码中的STM32 BSP包来分析。rt-thread\bsp\stm32f10x 下,涉及的文件为:usart.cusart.hserail.cserail.

2016-07-04 15:04:59 5194 2

转载 【RT-Thread学习笔记 5】优先级反转实验,使用信号量实现

RTOS中很经典的问题。就是在使用共享资源的时候,优先级低的进程在优先级高的进程之前执行的问题。这里模拟这种情况。下面的实验模拟了优先级反转的情况:先定义三个线程://优先级反转实验rt_sem_t sem;rt_uint32_t t1_count = 0,t2_count = 0,worker_count = 0;rt_thread_t t1,t2,worker

2016-07-04 15:03:19 1153

转载 【RT-Thread学习笔记 4】线程让出实验

API: rt_thread_yield线程函数中调用,本线程释放MCU。如果此时有别的相同优先级的任务整处于等待状态,将获得MCU使用权。线程让出就是给OS增加一个任务调度的机会。创建两个线程,观察他们的结果://线程让出试验void yield_test1(void* parameter){ rt_uint32_t count = 0;

2016-07-04 15:02:42 585

EtherCAT-LAN9252培训资料.pdf

C18L11 LAN2 EtherCAT和Microchip LAN9252从控制器介绍

2021-09-10

max31865驱动程序.rar

使用STM32F103的3路硬件SPI读写MAX31865的驱动程序,及RTD温度的计算公式,非查表法,该公式进行了优化,运算时间较快。该驱动程序已经应用到实际项目中,可以直接使用,其中RTD的计算方法,是自己研究了好久的结果。文件只有驱动程序(STM32F103的3路硬件SPI和max31865的读写驱动),非全部工程文件,介意者勿下。

2021-09-10

TwinCAT3官网详细入门教程.pdf

详细介绍了TwinCAT3的下载安装,授权注册,软件使用等,文档共231页。

2021-07-20

u-boot移植手册和uboot代码详细分析和UBoot移植详解

u-boot移植手册和uboot代码详细分析和UBoot移植详解,UBOOT移植详细_很全面

2013-01-18

史上最全SD卡开发资料包括程序和原理图SPI和SD模式

做SD卡开发的有福了,这是我做SD卡工程积累下的资料,很多也是从网上找到的和自己总结的,整理后分享给自己,所以资料也比较多共50多M,资料相对来说还是比较全的

2012-03-23

stm32f103的原装eval开发板原理图用户手册

stm32f103的原装eval开发板原理图用户手册

2011-06-15

stm32f103的原装eval板原理图+pcb protel格式

stm32f103的原装eval板原理图+pcb protel格式

2011-06-15

Xilinx_FPGA开发实用教程(1-60) 清华大学出版 田耕著

Xilinx_FPGA开发实用教程(1-60) 清华大学出版 田耕著

2011-04-07

USB2.0-CY7C68013A-56使用手册

USB2.0-CY7C68013A-56使用手册

2011-03-25

Xilinx FPGA培训资料整理

Xilinx FPGA培训资料整理 自己整理的很全 的陪讯资料

2011-03-18

Xilinx ISE详细使用指南

Xilinx ISE详细使用指南 Xilinx ISE详细使用指南

2011-03-18

FPGA高级应用开发指南 [xilinx]

FPGA高级应用开发指南 [xilinx]

2011-03-18

XilinxFPGA设计进阶提高篇

Xilinx FPGA 设计进阶 提高篇

2011-03-18

最全FPGA开发板原理图

最全FPGA开发板原理图 红色飓风 XC3S400 EP2C 等多家开发板原理图

2011-03-18

TMS320VC33系列讲座资料开发技巧

TMS320VC33 系列讲座资料 开发技巧 应用电路图

2011-03-16

DSP开发板原理图大全

史上最全的DSP开发板原理图 包括定点和浮点的

2011-03-12

浮点型DSP tms320vc33开饭板原理图

浮点型DSP tms320vc33开饭板原理图

2011-03-12

空空如也

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

TA关注的人

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