自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

放飞梦想,成就未来

个人心得与笔记

  • 博客(151)
  • 资源 (21)
  • 收藏
  • 关注

原创 发布一个简单好用的STM32F20x烧录工具

主界面如下图:目前支持STM32F20x的MCU,其它功能待进一步完善。下载地址:http://download.csdn.net/detail/flydream0/5264125第一步:选择串口在启动软件时,程序会自动将当前存在的串口导入到列表中以供选择,且程序默认状态下自动选择了最后一个串口。第二步:载入文件可支持bin文件和hex文件:第三步:点击开始烧录:请先确保STM32F20x的MCU

2013-04-16 15:24:33 11314 1

原创 rt-thread装载可重定位文件的源码分析

1 前言上一章总结完了装载共享文件的源码分析,之前讲到过,rt-thread中目前可支持共享文件和可重定位文件,这也是这一章的目的。可重定位文件简单可理解为.o文件,包含适合于与其他目标文件链接来创建可执行文件或者共享目标文件的代码和数据。在rt-thread中,这个装载过程由函数_load_relocated_object来实现,总体上装载可重定位文件简单可分为三步:计算内存镜像大小,并分配内存

2013-04-04 10:53:55 3873 3

原创 rt-thread装载共享目标文件的过程源码分析

在http://blog.csdn.net/flydream0/article/details/8684811一文中已对rrt-thread的moudle源码进行分析,在讲到rt_module_load函数时,程序将对两个类型的elf文件进行分别处理,共享目标文件将用_load_shared_object函数来处理,而可重定位文件则用_load_relocated_object函数来处理,由于要了

2013-03-28 22:18:05 3229

原创 elf文件格式总结

1 简介可执行链接格式(Executable and Linking Format)最初是由 UNIX 系统实验室(UNIX System Laboratories,USL)开发并发布的,作为应用程序二进制接口(Application Binary Interface,ABI)的一部分。工具接口标准(Tool Interface Standards,TIS)委员会将还在发展的 ELF 标准选作为一

2013-03-27 21:13:32 20010 3

原创 rt-thread的moudle源码分析

1 前言大家都知道在windows操作系统中,可以运行一个个程序,这些程序大都是exe可执行文件,它是一个编译好的二进制文件,在windows下,在一个程序中还可以使用dll动态链接库dll文件,它同样也是编译好的二进制文件。相对的在Linux下也有可执行文件可动态链库.so文件,那么在rt-thread中是否也存在一种这样的文件,可以在系统的运行过程中,由用户启动并执行它,答案是有。在rt-th

2013-03-17 22:46:09 26197 3

原创 rt-thread内核对象标志(object.flag)总结

1 前言在前面介绍rt-thread内核对象时(http://blog.csdn.net/flydream0?viewmode=contents),有介绍到rt-thread内核对象成员flag,但是没有怎么具体介绍他的含意,只是把它当做普通标志来理解,这里特意将此flag提出来总结一下,这也是这篇博文的目的.首先,内核对象的flag确实是一标志,且是8个位的数据,按位来定义的,那么它到底各个位是

2013-03-13 00:13:39 4126

原创 apt-get指令的autoclean,clean,autoremove的区别

下面总结一下有关apt-get的常用但容易混淆的指令:apt-get autoclean:    如果你的硬盘空间不大的话,可以定期运行这个程序,将已经删除了的软件包的.deb安装文件从硬盘中删除掉。如果你仍然需要硬盘空间的话,可以试试apt-get clean,这会把你已安装的软件包的安装包也删除掉,当然多数情况下这些包没什么用了,因此这是个为硬盘腾地方的好办法。apt-get clean:

2013-02-28 09:21:40 120019 9

原创 rt-thread中用消息队列实现广播功能的一种方法

前面几天在逛论坛时看见有人说RTT中没有广播机制,于是心血来潮,想自己动手写一个,于是有了此文.1 广播机制分析广播,这个词首先让我想到Android下的广播机制,其是基于Binder来实现的,然而RTT并不是Linux内核的东东,也没有Binder这样的IPC,RTT有自己的一套IPC机制,前面的文章中有说到信号,互斥量,事件,邮箱和消息队列,我们得从这方面动动脑筋.再回来广播这个词,现实中,电

2013-02-26 21:04:35 8300 6

原创 rt-thread的IPC机制之消息队列源码分析

消息队列是另一种常用的线程间通讯方式,它能够接收来自线程的不固定长度的消息,并把消息缓存在自己的内存空间中。其他线程也能够从消息队列中读取相应的消息,而当消息队列是空的时候,可以挂起读取线程。而当有新的消息到达时,挂起的线程将被唤醒以接收并处理消息。消息队列是一种异步的通信方式。如上图所示,通过消息队列服务,线程或中断服务子程序可以将一条或多条消息放入消息队列。同样,一个或多个线程可以从消息队列中

2013-02-22 21:22:25 5204 1

原创 rt-thread的IPC机制之邮箱源码分析

邮箱服务是实时操作系统中一种典型的任务间通信方法,通常开销比较低,效率较高,每一封邮件只能容纳固定的4字节内容(针对32位处理系统,刚好能够容纳一个指针).如下图所示,线程或中断服务例程把一则4字节长度(典型的是一个指针)的邮件发送到邮箱中。而一个或多个线程可以从邮箱中接收这些邮件进行处理。RT-Thread采用的邮箱通信机制有点类型传统意义上的管道,用于线程间通讯。它是线程,中断服务,定时器向线

2013-02-22 08:43:02 7375 1

转载 嵌入式系统基础

本文从http://www.rt-thread.org/phpBB3/viewtopic.php?f=2&t=143整理而来.嵌入式系统基础1、嵌入式系统的定义(1)定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。(2)嵌入式系统发展的4个阶段:无操作系统阶段、简单操作系统阶段、实时操作系统阶段、面向I

2013-02-21 20:46:41 7064 3

原创 rt-thread的IPC机制之事件源码分析

1 前言事件主要用于线程间的同步,与信号量不同,它的特点是可以实现一对多,多对多的同步。即一个线程可等待多个事件的触发:可以是其中任一一个事件进行触发唤醒线程进行事件的处理操作;也可以是几个事件都到达后才触发唤醒线程进行后续的处理。同样,事件也可以是多个线程同步多个事件。这种多个事件的集合可以用一个32位无符号整型变量来表示,变量中的一位代表一个事件,线程通过“逻辑与”或“逻辑或”与一个或

2013-02-21 15:24:19 4310

原创 rt-thread的IPC机制之互斥锁源码分析

互斥锁是管理临界资源的一种有效手段。因为互斥锁是独占的,所以在一个时刻只允许一个线程占有互斥锁,利用这个性质来实现共享资源的互斥锁保护。任何时刻只允许一个线程获得互斥量对象,未能够获得互斥量对象的线程被挂起在该互斥量的等待线程队列上。1 互斥锁控制块/** * Mutual exclusion (mutex) structure */struct rt_mutex{

2013-02-20 23:03:10 4636

原创 rt-thread的IPC机制之信号量源码分析

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

2013-02-20 12:52:05 6213 1

原创 rt-thread的IO设备管理系统源码分析

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

2013-02-19 16:19:24 6583

原创 rt-thread的空闲线程源码分析

rt-thread的空闲线程在是线程空闲时执行的,它的主要操作是进行“垃圾回收”,这里的“垃圾”是待close掉的线程。1 空闲线程的实现在rt-thread线程启运时,系统会初始化空闲线程并启动它:/** * @ingroup SymstemInit * * This function will initialize idle thread, then start it.

2013-02-19 11:37:55 5590

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

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

2013-02-19 10:04:49 5076

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

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

2013-02-18 22:29:19 6257

原创 rt-thread线程调度器源码分析

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

2013-02-17 18:03:43 7828

原创 rt-thread线程源码分析

rt-thread操作系统是一个多线程的操作系统,线程对于rt-thread来说是一个很重要的概念,因此,必须掌握它。1 线程控制块的数据结构/** * Thread structure */struct rt_thread{ /* rt object *///这里就是rt_object的结构,其实也可以用rt_object parent来定义,估计线程在早些时候并没有这么

2013-02-17 14:10:16 10399 2

原创 rt-thread的定时器管理源码分析

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

2013-02-05 11:39:04 9935

原创 rt-thread的内核对象管理系统分析

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

2013-02-04 15:01:04 7384

原创 rt-thread的小内存管理算法分析

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

2013-02-03 12:31:42 6967 2

原创 使用CAsyncSocket类进行网络编程

1 服务器端由先得专门为服务器端做一个Socket通信类CNewSocket类,此类继承CAsyncSocket类,专门负责服务器端socket通信事情:NewSocket.h:#pragma once#include "afxsock.h"//此类专门用来与客户端进行socket通信class CNewSocket : public CAsyncSocket{public

2013-01-26 20:37:26 13481 2

原创 CString与char *互转总结

1 前言今天在网上看论坛,发现大家对CString与Char *互转各说一词,其实我发现提问者所说的情况与回答问题的人完全不是同一情况,这里做一总结.首先大家得清楚一件事,一般在网上提出问题的人大部分使用的都是VC,那么你就应该知道,在VC下编程,工程属性中有一属性Charecter Set属性,其值可以设置为Use Multi-Byte Charecter Set 和 Use

2013-01-25 22:52:52 98119 15

原创 HEX文件和BIN文件总结及hex文件流转bin文件流示例代码

这几天在写STM32的ISP烧录工具,因此有涉及到输入hex文件或bin文件进行烧录的问题,所以对hex文件和bin文件进行了些总结。1 hex介绍Hex 全称 (Intel HEX)文件是由一行行符合Intel HEX文件格式的文本所构成的ASCII文本文件。在Intel HEX文件中,每一行包含一个HEX记录。这些记录由对应机器语言码和/或常量数据的十六进制编码数字组成。Intel

2012-12-28 13:15:38 11705 4

转载 也说跳槽

转自:http://www.oschina.net/question/247503_81107跳槽的学问不在一个跳字,而在于长期的职业生涯规划。跳槽可以帮助职业生涯更上一层楼,而跳槽之所以能够成功,也是因为以往有了较好的职业生涯规划。什么决定了程序员的价格所谓的职业就是企业和员工之间的价值交换。企业付出薪水,福利来雇用员工,以期通过员工的劳动来实现企业的目标。员工付出劳动,

2012-11-29 21:41:48 2566

原创 如何用MDK从零开始创建STM32F2xx工程(图文教程)

第一步:下载标准外设固件库。        下载链接:http://www.st.com/stonline/stappl/resourceSelector/app?page=resourceSelector&doctype=FIRMWARE&ClassID=1734        打到STM32F2xx Standard Peripherals library,目前最新的版本是V1.1.0

2012-11-29 10:54:02 20445 1

转载 IAR6.4编译6.2以前版本的问题

转自:http://blog.csdn.net/hitxiaya/article/details/8017641 IAR6.2以后的版本编译IAR6.2以前的版本会出现如下错误:Error[Pe147]: declaration is incompatible with "__nounwind __interwork __softfp unsigned long __REV16(uns

2012-11-27 10:48:47 3715 1

原创 STM32之中断与事件---一个使用GPIO作为外部中断的示例

1.GPIO 的正确设置GPIO_InitTypeDef GPIO_InitStructure;/* Enable GPIOD clock */RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);/* Configure PD.03, PC.04, as input floating */GPIO_InitStructure.GPIO

2012-11-21 17:32:29 24431

原创 STM32之中断与事件---中断与事件的区别

<!--@page {margin:0.79in}p {margin-bottom:0.08in; direction:ltr; color:#000000; text-align:justify; widows:0; orphans:0}p.western {font-family:"Times New Roman",serif; font-siz

2012-11-21 15:55:42 52735 31

原创 STM32之CAN---工作/测试模式浅析

1 bxCAN工作模式    bxCAN有3个主要的工作模式:初始化模式、正常模式和睡眠模式。    在硬件复位后,bxCAN工作在睡眠模式以节省电能,同时CANTX引脚的内部上拉电阻被激活。软件通过对CAN_MCR寄存器的INRQ或SLEEP位置’1’,可以请求bxCAN进入初始化或睡眠模式。一旦进入了初始化或睡眠模式,bxCAN就对CAN_MSR寄存器的INAK或SLAK位置’1’来进

2012-11-11 00:10:15 22963

原创 STM32之CAN---中断管理浅析

1 前言bxCAN占用4个专用的中断向量。通过设置CAN中断允许寄存器(CAN_IER),每个中断源都可以单独允许和禁用。                                                                      图1从图1可以看出,最右边共四个中断,中断是可以通过CAN_IER来屏蔽或允许的。2 CAN中断允许寄存器 (CAN_

2012-11-10 23:12:54 24506

原创 STM32之CAN---配置波特率

1 位时间特性                    为了掌握如何设置STM32 CAN的波特率,首先我们得先了解一下位时间特性。                     位时间特性逻辑通过采样来监视串行的CAN总线,并且通过跟帧起始位的边沿进行同步,及通过跟后面的边沿进行重新同步,来调整其采样点。它的操作可以简单解释为,如下所述把名义上的每位的时间分为3段:● 同步段(SYNC_

2012-11-10 22:40:33 56759 5

原创 STM32之CAN---TTCAN模式浅析

1 前言            传统CAN 采用事件触发消息传输机制,CSMA/ CD+ AMP( Carrier-Sense Mult iple Access w ith Co llision Detect ion and Arbit ration on Message Priorit ies, 载波侦听、多路访问、冲突检测、优先级仲裁) 介质访问控制机制, 即多个消息同时发送时, 按照消息

2012-11-09 18:33:39 18871 5

原创 STM32之CAN---错误管理分析

1 几个重要概念        根据ISO11898有如下几个重要的与CAN相关的定义:Fault confinement(错误界定)CAN nodes shall be able to distinguish short disturbances from permanent failures. Defective transmitting nodes shall be swit

2012-11-08 16:36:03 33502 1

原创 STM32之CAN---发送管理分析

1 CAN发送邮箱STM32共有三个CAN发送邮箱,在检测到总线空闲时交发送,但需要注意的是,有可能会发送失败,有可能因为仲裁失败从而导致失败,也有可能是其它错误,原则上bxCAN将自动重发,但bxCAN也可以配置不自动重发。正因为如此,发送邮箱中有可能同时存在多个需要发送的报文,一旦出现这种情况,那么发送邮箱中的多个报文又将是谁先发送谁后发送呢?有两种模式:ID模式和FIFO模式。ID模式由报文

2012-11-07 16:56:33 49690 10

原创 STM32之CAN---接收管理分析

1 前言                  当bxCAN接收到报文,经过过滤器过滤后,会将报文存储到FIFO中,由http://blog.csdn.net/flydream0/article/details/8148791一文中可知,每个过滤器组都会关联一个FIFO,由此可见,当接收到的报文通过过滤器后会被存储到此过滤器组关联的FIFO中(STM32共两个接收FIFO)。这个FIFO为3级邮箱

2012-11-07 10:49:56 38730 4

原创 Android全球开发者大会参后感

10月26号本人去参加了深圳Android开发者大会,说是开发者大会,但给人感觉的却是Android商务大会。会上,各大企大佬们分别发表讲话,有高通老大,讯雷老总,360副总,TCL技术总监,腾迅某某以及其它一些知名企业,有点遗憾的是,没有一家汽车相关企业老总讲话。整个大会有条不紊地进行,最大的体会就是Android应用范围越来越广泛了,Android不仅渗透到移动手机行业,还渗透到智能家电,汽车

2012-11-06 10:09:43 4146 1

原创 STM32之CAN ---CAN ID过滤器分析

1 前言         在CAN协议里,报文的标识符不代表节点的地址,而是跟报文的内容相关的。因此,发送者以广播的形式把报文发送给所有的接收者。节点在接收报文时,根据标识符(CAN ID)的值决定软件是否需要该报文;如果需要,就拷贝到SRAM里;如果不需要,报文就被丢弃且无需软件的干预。         为满足这一需求,bxCAN为应用程序提供了14个位宽可变的、可配置的过滤器组(13~0),以

2012-11-05 16:01:16 100214 55

USB_CDC_TEST.7z

此代码支持STM32F1,STM32F0,STM32F4..等USB IP核。

2017-05-04

multiple_drive_usb_sdcard_fat32

本工程实例如何同时读取U盘和SD卡的FAT32文件系统,基于STM3240G-EVAL评估板

2017-01-13

USB_DFU_Demo

基于STM32F407制作的DFU代码

2017-01-06

F407_USB_FLASH_DISK_SDCard

本DEMO通过USB读取U盘的方式读取SD卡内容

2017-01-04

STM32F407_SDIO_Test_AutoDetectSdCardIn_TwiceMountIssue_DMA

基于STM32F407的SDCard文件系统读取示例,FAT32文件系统,自动检测SD卡插拔,SDIO使用到了DMA传输的代码示例。

2017-01-03

F407_Host_MSC_Test

本附件为基于STM32F407的代码,示例如何创建读取U盘文件系统的工程

2016-12-21

USB_CDC_Test

使用CubeMx开发的USB CDC类示例代码

2016-11-17

Audio_Test for STM32F4Discovery

基于STM32F4Discovery板子的音频示例代码。

2016-11-10

STM32F407_SDIO_Test.7z

STM32F407基于SD卡的文件系统实例代码

2016-10-10

CAN_Filter_Test

CAN 过滤器测试代码

2016-08-25

STM32F070_USB-FS-Device_Lib V1.0.0

STM32F070_USB-FS-Device_Lib V1.0.0 从STM32F0x2移植过来的 基于标准库的USB全速库

2016-07-30

myuekeygen

windows下的UE注册机,我的UE是使用来注册的,必要在离线的状态下注册

2013-08-19

STM32F20xFlashLoader

这是一个简单小巧的专门针对STM32F20x系统的MCU的烧录工具,支持bin,hex文件烧录,且烧录时可由用户选择只擦除必要flash还是全部flash,以及读保护等功能。

2013-04-16

RTT broadcast test source code

rt-thread的广播机制和测试代码,欢迎大家下载进行测试.

2013-03-01

rt-thread广播机制测试源码

rt-thread广播机制源码及测试代码,希望下载进行测试.

2013-03-01

RTT广播测试源码

RTT广播机制及测试源码,希望大家下载测试一下。

2013-03-01

WinMPG MP4视频转换

一个很好的视频格式转换工具,里边有注册码,支持MP4格式转换,用来做ipad,iphone视频导入很方便,除了MP4格式外,一般的视频格式都支持。

2012-04-24

AccessPort

一个很好的串口监视工具,主要是可以监视指定的串口通讯,并不占用该串口,所以收藏了.

2012-04-24

Android repo工具

由于官网上的那个repo工具不能下载了,现在把这个工具上传下,以供其它人使用.

2012-04-21

commix1.4 串口通讯工具

一个很好的串口通讯工具,介绍给大家,也积累这个软件.

2012-02-06

VA_X_Setup1845

Visual Assist X V10.6.1845.0 支持VS2010,破解非常容易,先安装VA_X_Setup1845.exe,再运行那个破解软件VA_X_Setup1845_Patch.exe.如果你的是VS2010的话,则点击Path2010,OK!

2011-11-29

空空如也

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

TA关注的人

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