嵌入式软件设计
DreamingCatcher
这个作者很懒,什么都没留下…
展开
-
嵌入式软件学习笔记
嵌入式学习遇到的问题及资料整理:1、C语言准备3个条件判断语句:if、else、if else 3个循环语句:while、do while、for 3个跳转语句:return、go to、break、continue1个开关语句:switch参考范文:http://blog.csdn.net/itpeng523/article/details/7975019原创 2017-05-24 17:35:22 · 655 阅读 · 0 评论 -
独立看门狗总结
一、独立看门狗IWDG概述1.)看门狗设备(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障;当计数器达到给定的超时值时,触发一个中断或产生系统复位。2.)功能图:(由于本人无法贴图,请见参考手册,125页)3.)独立看门狗(IWDG)由专用的40kHz 的低速时钟为驱动;因此,即使主时钟发生故障它也仍然有效。4.)其中IWDG_PR为预分频器寄存器,I原创 2017-09-20 11:26:27 · 961 阅读 · 0 评论 -
硬件IIC和软件IIC区别
所谓硬件I2C对应芯片上的I2C外设,有相应I2C驱动电路,其所使用的I2C管脚也是专用的;软件I2C一般是用GPIO管脚,用软件控制管脚状态以模拟I2C通信波形。硬件I2C的效率要远高于软件的,而软件I2C由于不受管脚限制,接口比较灵活。模拟I2C 是通过GPIO,软件模拟寄存器的工作方式,而硬件(固件)I2C是直接调用内部寄存器进行配置。如果要从具体硬件上来看,可以去看下芯片手原创 2017-08-14 23:13:54 · 15871 阅读 · 1 评论 -
CC2530基础实验(1)—LED灯闪烁
通过这个实验,可以掌握通过CC2530控制外设的基本方法。本次的实验所要做的让LED1、LED2、LED3、LED4实现走马灯式的闪烁。CC2530芯片I/O对照表CC2530的I/O控制口一共有21个,分成3组,分别是P0、P1和P2;由上面的对照表可以看出LED1所对应的I/O口为P1_0,LED2所对应的I/O口为P1_1,LED3所对应的I/O口为P转载 2017-08-13 08:56:33 · 17824 阅读 · 0 评论 -
cc2530的通用IO和外设IO的区别
用作通用I/O 时,引脚可以组成3 个8 位端口,端口0、端口1 和端口2,表示为P0、P1 和P2。其中,P0和P1 是完全的8 位端口,而P2 仅有5 位可用。所有的端口均可以通过SFR 寄存器P0、P1 和P2 位寻址和字节寻址。每个端口引脚都可以单独设置为通用I/O 或外部设备I/O。能力。寄存器PxSEL,其中x 为端口的标号0~2,用来设置端口的每个引脚为通用I/O 或原创 2017-08-19 15:58:03 · 9720 阅读 · 3 评论 -
define总结
#define总结 (网上资料汇集)1. 定义简单的常数:定义常量,便于修改(切不可在后面加上分号!) #define N 1000 等效于 const int N = 1000; 但略有不同,define只是简单替换,而不是作为一个量来使用.2. 定义简单的函数:注意多使用括号define可以像函数那样接受一些参数,如下:#define max(x原创 2017-07-23 22:34:33 · 524 阅读 · 0 评论 -
OSAL系统相关问题
OSAL中断操作:1、 允许中断byte osal_int_enable( byte interrupt_id )-- interrupt_id:中断标示符2、禁止中断 byte osal_int_disable( byte interrupt_id ) -- interrupt_id:中断标示符3、暂停中断 HAL_ENTER_CRITICAL_SECTIO转载 2017-07-13 22:28:17 · 620 阅读 · 0 评论 -
ZigBee中常用的结构体
数据发送:AF_DataRequest //数据发送函数typedef struct// afAddrType_t;目的地址结构体变量typedef enum//afAddrMode_t数据传送类型typedef struct// endPointDesc_t;设备端点描述符typedef struct// zAddrType_t;地址变量(长地址或者短地址原创 2017-07-12 17:43:09 · 1121 阅读 · 0 评论 -
嵌入式常用指令合集
1、#if和#endif指令问:OS_EVENT *OSMutexDel (OS_EVENT *pevent, INT8U opt, INT8U *err) {#if OS_CRITICAL_METHOD == 3OS_CPU_SR cpu_sr;#endif.....}答:c语言里所有以#开头的都是预编译指令,就是在正式编译之前,让编译器做原创 2017-07-12 14:14:58 · 1355 阅读 · 0 评论 -
IAR编译ZStack-CC2530为可下载运行的HEX文件的正确配置:
1.正确配置输出文件格式:菜单选择Project-Options-Linker-Output-Format,选择Other。右边的Output下拉框选intel-extended,Format variant下拉框选None,Module-local下拉框选Include all2.还是在菜单Project-Options-Linker-Output标签中,勾上Override defau转载 2017-07-12 10:14:20 · 807 阅读 · 0 评论 -
OSAL API
一、信息管理APIosal_msg_allocate( )函数原型:任务是分配一个信息缓冲区,当任务调用或函数被调用时,该空间被信息填充或调用信息发送函数osal_msg_send() 发送缓冲空间的信息到其他任务,若该缓冲空间不能被分配,则设置msg_ptr=NULL空; uint8 *osal_msg_allocate( uint16 len ),返回的是指针,原创 2017-07-11 14:29:21 · 1688 阅读 · 0 评论 -
NV操作实验
NV操作实验1、实验内容:通过串口调试助手发送“nvread”命令,开发板接受到该命令读取NV存储器中的数据并发送给PC端的串口调试助手。2、基本知识:NV(Non Volatile),即非易失性存储器(Flash存储器),即系统掉电,存储器中的数据不掉失。主要用途保存网路的配置参数,或掉电后,上电该节点还是加入原来的网络并且该节点的网络地址就可以从NV读取。NV存储器主要的操作有转载 2017-07-11 14:03:02 · 2547 阅读 · 0 评论 -
OSAL NV区操作
系统NV区: 初始化nv数据项 osal_nv_item_init()读取nv数据项 osal_nv_read()写入nv数据项 osal_nv_write()在使用osal_nv_read()或osal_nv_write()之前必须调用osal_nv_item_init()。函数原型:uint8 osal_nv_item原创 2017-07-11 13:59:13 · 983 阅读 · 0 评论 -
static的作用
在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容char a = 'A'; // global va原创 2017-07-11 13:30:19 · 354 阅读 · 0 评论 -
深入剖析之通过IAR MAP文件查看目标文件内存分配 - STM32/8
为了具体化问题,我这里还是以IAR开发Kinetis为例深入介绍一下。其实map文件(内存映射文件)可能初手开发的时候甚少有去关注它的,甚至好些都不知道它是干嘛的,呵呵,只有一些有经验的老手或者搞移植搞深入研究的才会去查看它,初手往往上来就是在线调试、查看内存(这个都很少用)、看寄存器、断点(这个用的也少)等等,但是等你了解了map文件,再去完成上述调试的时候会让你事半功倍,且有一种运筹帷幄的感觉...原创 2018-05-04 08:25:09 · 2571 阅读 · 0 评论