嵌入式
记事本
linux驱动/汽车电子
展开
-
uboot基础知识
1. 下面代码是系统启动后U-boot上电后运行的第一段代码,他是什么意思?.globl _start_start: b reset ldr pc, _undefined_instruction ldr pc, _software_interrupt ldr pc, _prefetch_abort ldr p转载 2013-09-17 15:49:25 · 708 阅读 · 0 评论 -
STM32学习笔记之按键查询方式控制led灯的亮灭
其实接触STM32已经快半年了,端断续续的也学习了一下的STM32的各个模块的基本功能,刚开始的时候也是看比人的写的代码,看懂了然后再去修改,能够在自己的平台上实现基本的功能,也就是到现在才能真正的按照自己的想法来实现写功能,在本文中我将介绍下比较经典的按键驱动程序的实现方式--查询,当然中断方式的应用也比较广泛,在此先不做介绍了。 首先我的硬件平台是奋斗版STM32,之所以选择这款开原创 2013-01-06 16:54:49 · 16168 阅读 · 1 评论 -
有关推挽输出、开漏输出、复用开漏输出、复用推挽输出以及上拉输入、下拉输入、浮空输入、模拟输入区别
最近在看数据手册的时候,发现在Cortex-M3里,对于GPIO的配置种类有8种之多:(1)GPIO_Mode_AIN 模拟输入(2)GPIO_Mode_IN_FLOATING 浮空输入(3)GPIO_Mode_IPD 下拉输入(4)GPIO_Mode_IPU 上拉输入(5)GPIO_Mode_Out_OD 开漏输出(6)GPIO_Mode_Out_PP 推挽输出(转载 2012-12-31 22:56:56 · 762 阅读 · 0 评论 -
实现STM32中USART的DMA
对于没玩过DMA 的朋友,这里简单说一下DMA,用自己的语言说吧,那就是,从某个位置传输数据到某个位置,如果不用DMA,那要CPU参与操作,一个字节一个字节地搬,效率高点的,就一个字一个字地搬.但当你用了DMA 后,那就是只需要设置:A.从哪里开始搬; B,搬到哪里去;C以字节方式搬还是半字还是字;D:一共搬多少个.之后,启动DMA.CPU内部就会开始搬数据了,整个搬数据的过程都不转载 2013-01-07 10:09:22 · 1076 阅读 · 0 评论 -
sTM32F10X SPI操作flash MX25L64读写数据
前一段时间在弄SPI,之前没接触过嵌入式外围应用,就是单片机也只接触过串口通信,且也是在学校的时候了。从离开手机硬件测试岗位后,自己一直想在嵌入式方面发展,在1月4号开始自己的第二份工作后,首先接触到的是为STM32F103写SPI控制flash读写操作,现记下曾经的脚印,希望以后能少走弯路!心得:细心活!简单的一种应用,ARM芯片作为master,flash为slaver,实现单对单通信。A转载 2013-11-19 16:56:32 · 3849 阅读 · 1 评论 -
关于STM32的引脚重映射
最近在学习STM32,在BZ上一篇关于的串口通信文章里有这么一段代码:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO,ENABLE);当初是参考开发的里子写的一直对GPIOD或上“RCC_APB2Periph_AFIO”这句话的意思没搞懂,通过这几天在网上查找资料和看手册,终于高清楚了,不敢独享,希望能对跟我一转载 2013-04-15 21:54:25 · 4895 阅读 · 1 评论 -
MSP430F在ETC中的应用
TI公司的MSP430 单片机产品系列具备16-bit RSIC架构,超低功耗。作为MSP430最新产品序列,F5xxx首次采用0.18um工艺,1MIPs消耗的电流低到了惊人的160uA,主频达到25MIPs 。同时,MSP430F5xxx提供了丰富的片上功能模块,例如,硬件的RTC,12-bit ADC,灵活的时钟系统,硬件CRC16,电源管理模块和多通道的灵活强大的DMA,支持待机模式下转载 2013-10-18 11:49:38 · 1119 阅读 · 0 评论 -
APDU命令集
APDU命令CLA INS P1 P2 Lc Data Le其中CLA为指令类别;INS为指令码;P1、P2为参数;Lc为Data的长度;Le为希望响应时回答的数据字节数,0表最大可能长度。一 命令分类:COS命令由具体应用分为4种命令报文结构如下:① 情形1CLA INS P1 P2 00 ② 情形2CLA INS P1 P2 Le③ 情形3转载 2013-10-12 13:28:25 · 1840 阅读 · 0 评论 -
CPU卡发卡总结
概述:CPU卡包含一个微处理器,其功能相当于一台微型计算机。CPU卡内集成电路中包括中央处理器(CPU)、只读存储器(ROM)、随机存储器(RAM)、电可擦除可编程只读存储器(EEPROM)等。 使用FMCOS,由传输管理、文件管理、安全体系、命令解释四个功能模块组成。传输管理:监督卡与终端之间的通信,保证数据正确地传输。文件管理:区别于其他卡按区块存储数据的方式。CPU卡将用户数据以转载 2013-10-12 11:22:04 · 1202 阅读 · 0 评论 -
单片机软件模拟SPI接口—加深理解SPI总线协议
单片机软件模拟SPI接口—加深理解SPI总线协议 SPI(Serial Peripheral Interfacer 串行外设接口)是摩托罗拉公司推出的一种同步串行通讯接口,用于微处理器臌控制器和外围扩展芯片之间的串行连接,现已发展成为一种工业标准,目前,各半导体公司推出了大量的带有SPI接口的具有各种各样功能的芯片,如RAM,EEPROM,FlashROM,A/D转换器、D/转载 2013-10-25 10:09:49 · 756 阅读 · 0 评论 -
作为一个新人,怎样学习嵌入式Linux?被问过太多次,特写这
作为一个新人,怎样学习嵌入式Linux?被问过太多次,特写这篇文章来回答一下。 在学习嵌入式Linux之前,肯定要有C语言基础。汇编基础有没有无所谓(就那么几条汇编指令,用到了一看就会)。C语言要学到什么程度呢?越熟当然越好,不熟的话也要具备基本技能。比如写一个数组排序、输入数字求和什么的。学C语言唯一的方法是多写程序多练习,编译出错没关系,自己去解决;执行出错没关系,自己去分析。以前我转载 2013-07-20 08:40:10 · 1081 阅读 · 0 评论 -
STM32 的三种不同启动模式
STM32三种启动模式对应的存储介质均是芯片内置的,它们是:1. 用户闪存:芯片内置的Flash。2. SRAM:芯片内置的RAM 区,就是内存啦。3. 系统存储器:芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM 区。在每个STM32的芯片上都有两个管脚BOOT0和转载 2013-01-07 10:27:21 · 3322 阅读 · 0 评论 -
浅谈STM32的DMA模块的使用
转自:http://blog.ednchina.com/jack_chang/123085/message.aspxhttp://article.ednchina.com/Other/200806050734461.htmBy Jack Chang Thu Jun 5 2008 18:30:49 E-mail:zhang-weihong@126.转载 2013-01-07 10:12:01 · 1100 阅读 · 0 评论 -
STM32笔记之FSMC
引 言 STM32是ST(意法半导体)公司推出的基于ARM内核Cortex-M3的32位微控制器系列。Cortex-M3内核是为低功耗和价格敏感的应用而专门设计的,具有突出的能效比和处理速度。通过采用Thumb-2高密度指令集,Cortex-M3内核降低了系统存储要求,同时快速的中断处理能够满足控制领域的高实时性要求,使基于该内核设计的STM32系列微控制器能够以更优越的性价比,面向更广泛的转载 2013-01-12 23:32:40 · 1892 阅读 · 0 评论 -
uCOS任务堆栈的深入分析
堆栈作用的就是用来保存局部变量,从本质上讲也就是将CPU寄存器的值保存到RAM中。在uCOS中,每一个任务都有一个独立的任务堆栈。为了深入理解任务堆栈的作用,不妨分析任务从“出生”到“消亡”的整个过程,具体就是分析任务的建立,运行,挂起几种状态中任务堆栈的变化情况。现在假设系统运行着一个由用户创建的用以完成打印工作的任务TPrint。TPrint最初通过OSTaskCreate()函数创建转载 2013-04-26 10:00:04 · 756 阅读 · 0 评论 -
ucos学习实例之消息队列---按键控制LED的亮灭
OS_EVENT *KeyQEvent;INT8U err;INT8U *Qmsg_Key1 = "Key1";INT8U *Qmsg_Key2 = "Key2";INT8U *Qmsg_Key3 = "Key3";INT8U *Qmsg_Key4 = "Key4"; /***********************************************原创 2013-03-24 20:13:54 · 3258 阅读 · 0 评论 -
ucos中关于信号量的使用总结
在ucos-II中,为了实现任务之间的同步,用到的同步机制有:信号量,邮箱和消息队列。其中这里我主要说下对信号量的使用经验。信号量在创建时,调用OSSemCreate(INT16U cnt)函数。cnt为信号量的初始值。对cnt赋予不同的值,所起到的作用不同。如果Semp = OSSemCreate(0), 该信号量表示等待一个事件或者多个事件的发生。 例如:我们现在想实现这样一个功能:当有按键按转载 2013-03-19 09:48:14 · 1406 阅读 · 0 评论 -
μC/OS-II学习之:任务,信号量、邮箱、队列及其区别
一:UCOS是一种抢占式的多任务操作系统,如果最高优先级的任务不主动放弃CPU的使用的话,其他任务是无法运行的,通常情况下,高优先级的任务在使用完CPU或其他资源后都要主动放弃,可以通过延时函数或者时等待一些信号量之类的让自己挂起。但是如果最高优先级任务一直使用CPU,那就跟单任务没有什么区别了。二:可以通过等待信号量,消息等是当前任务挂起,或者通过通过延时函数将任务挂起,从而让其他优先级的任转载 2013-03-19 09:59:03 · 849 阅读 · 0 评论 -
任务创建函数OSTaskCreate解析
任务是操作系统处理的首要对象,在多任务运行的环境中,任务的管理需要考虑多方面的因素,最基本的任务管理是任务的创建。任务创建函数有两种,一种是基本的创建函数OSTaskCreate,另一种是扩展的任务创建函数OSTaskCreateExt。两个函数都实现了任务的创建,但是OSTaskCreateExt的功能更强,带有很多附加的功能,如果不需要附加功能,OSTaskCreate是完全可以胜任的,没有哪原创 2012-12-31 11:31:23 · 16992 阅读 · 0 评论 -
ucos-ii的任务控制块
在操作系统初始化函数OSInit执行之后,用户可以调用OSTaskCreate或者OSTaskCreateExt函数来创建用户任务,因为这两个函数是内核用来创建任务的,不允许用户进行修改,因此被称为系统服务。用户任务的程序是以函数的形式游用户编写,称为用户函数,和操作系统提供的服务划分了界限,很明显,必须将用户函数的地址传递给创建任务的系统服务。在用户任务中,同样可以调用OSTaskCreate或原创 2012-12-30 20:27:50 · 1292 阅读 · 0 评论 -
w25q16 driver
#ifndef _W25Q_H_#define _W25Q_H_/*The W25Q16BV array is organized into 8,192 programmable pages of 256-bytes each.Up to 256 bytes can be programmed at a time.转载 2013-11-27 15:38:57 · 2744 阅读 · 0 评论 -
汉字的内码和区位码与显示汉字原理
汉字的内码和区位码 在计算机中英文字符是用一个字节的ASCII码表示,该字节最高位一般置0或用做奇偶校验,故实际是用7位码来代表128个字符的,但对于众多的汉字,只有用两个字节才能代表,这样用两个字节代表一个汉字的代码体制,国家制定了统一标准,称为国标码。 国标码规定,组成两字节代码的最高位为0,即每个字节仅只使用7位,这样在机器内使用时,由于英文的ASCI转载 2013-11-27 11:07:13 · 1536 阅读 · 0 评论 -
SPI flash学习
分类: 嵌入式1.1 SST25VF080B简介1.1.1 主要特性关键点:容量、速度(时钟速度、读写速度)、功耗。l 容量:8MBit;l 最高SPI时钟频率:50MHz;l 低功耗模式下电流消耗:5uA,正常读模式电流:15mA;低功耗!采用不同的制造技术功耗要低很多。l 整片擦除:35ms;扇区/块擦除:18ms;字节编程:7us;转载 2013-11-15 23:45:22 · 2075 阅读 · 0 评论 -
STM32F10X SPI操作flash MX25L64读写数据
STM32F10X SPI操作flash MX25L64读写数据 前一段时间在弄SPI,之前没接触过嵌入式外围应用,就是单片机也只接触过串口通信,且也是在学校的时候了。从离开手机硬件测试岗位后,自己一直想在嵌入式方面发展,在1月4号开始自己的第二份工作后,首先接触到的是为STM32F103写SPI控制flash读写操作,现记下曾经的脚印,希望以后能少走弯路!心得:细心活!简单的一转载 2013-11-15 23:37:37 · 4301 阅读 · 0 评论 -
STM32 ADC多通道 关键代码
做了个上位机#==========================================================define ADC1_DR_Address ((u32)0x4001244C)vu16 AD_Value[2];=========================================================转载 2013-04-14 14:12:57 · 1622 阅读 · 0 评论 -
关于大小端以及GCC堆栈保护
一、大小端写一段代码 测试机器是大端还是小端?#include <stdio.h>#include <stdlib.h>int main(){ int a=0x12345678; char c=a; printf("c=%x \n",c); printf("exit...\n");}在li...原创 2019-06-20 21:00:48 · 1098 阅读 · 0 评论