
编程
文章平均质量分 50
Prog_Life
这个作者很懒,什么都没留下…
展开
-
STM32L051 低功耗特性分析
STM32L051 低功耗特性分析32MHz 2.7mW功耗low power sleep mode大概只有4.5uAstop mode大概 0.4uAstop mode能比low power sleep mode功耗低一个数量级。这个时候是把core还有大部分clk都关闭了stop mode with rtc 可以定时通过lptimer定时唤醒,执行中断or reumse程序执行。可以满足电池业务需求,同时把功耗降低一个等级低功耗进入退出流程,通过查看stm32...原创 2022-01-16 21:30:27 · 2639 阅读 · 0 评论 -
arm trustzone 学习记录
关键问题如何构建一个可信任环境(trust execution environemnt) 安全环境和非安全环境对资源访问的区别(secure timer interrupt memory etc.) 如何保证安全启动(secure boot, root of trust) 如何设计一套安全+非安全共存的软件框架和机制we...原创 2020-06-21 19:46:33 · 597 阅读 · 0 评论 -
常用Linux程序总结
Shell: bash。它结合了 csh 和 ksh 的优点,并且有 readline 功能,你可以随意绑定自己的键盘。 编辑器: VIM, Emacs。 程序开发: GCC, make, ld, Scheme48, j2sdk, Perl, Python, Tcl/Tk ... 论文,幻灯工具:LaTeX, ConTeXt 绘图工具:MetaPost。这个语言太强了,以至于我只用转载 2014-10-24 16:05:09 · 427 阅读 · 0 评论 -
可重入和不可重入
重入一般可以理解为一个函数在同时多次调用,例如操作系统在进程调度过程中,或者单片机、处理器等的中断的时候会发生重入的现象。一般浮点运算都是由专门的硬件来完成,举个例子假设有个硬件寄存器名字叫做FLOAT,用来计算和存放浮点数的中间运算结果假设有这么个函数void fun(){//...这个函数对FLOAT寄存器进行操作}假如第一次执行,有个对浮点数操作运算的结果临时存在FLOAT寄存转载 2014-10-24 11:31:19 · 431 阅读 · 0 评论 -
STM32 CLK configuration
AHB CLK = SYSCLK;APB1 CLK = SYSCLK/2;APB2 CLK = SYSCLK;PLL原创 2014-09-10 20:45:11 · 1046 阅读 · 0 评论 -
stm32 uCOS-III移植
最近终于对操作系统有了一个比较系统的rens原创 2014-10-13 13:34:15 · 1628 阅读 · 1 评论 -
Django入门:第一个Django应用
对Django这个 框架 感 兴趣 好久了,却一直懒于 研究 学习 ,现在跟随官网的 教程 跑一遍,学学Django同时也 继续 学学 Python 。 在开始之前, 我们 先把Python和Django这个框架安装好。 官网: https://www.djangoproject.com/ 下载 :http://www.djangoproject. com /downloa转载 2014-11-03 09:59:46 · 597 阅读 · 0 评论 -
stm32 IAP程序烧写方案
最近做了一个飞行器,感觉使用jlink仿真器下载更新程序好复杂,每次都需要把一个大块头(Jlink)挂到飞行器上,操作极为不便,网上查了一下,stm32的程序烧写方式一共有三种(1)使用Jlink,JTAG等仿真器;这种方式简单快捷(2)使用系统自带bootloader,ISP,这种方式需要更改stm32boot0 boot1引脚,以更改启动方式。(3)使用ISP,即 in appli原创 2014-10-16 21:42:32 · 5581 阅读 · 3 评论 -
[转载]VC++四种启动其它程序的方法
四种启动其它程序的方法有时我们的程序需要启动其它程序,可能是为了利用它已有的功能,也可能是为了达到某种需要。那么怎样来启动我们需要的程序呢?我暂时知道有4种方法:1、调用API: int system( const char *command ); 你可以传入一命令,启动某个程序。如"ping www.vczx.com", "YourExe"等等 不过这里有几点要值得注转载 2014-10-18 20:37:36 · 1443 阅读 · 0 评论 -
堆、栈增长方向和大端、小端问题
栈增长方向与大端/小端问题栈增长和大端/小端问题是和CPU相关的两个问题。在内存管理中,与栈对应是堆。对于堆来讲,生长方向是向上的,也就是向着内存地址增加的方向;对于栈来讲,它的生长方式是向下的,是向着内存地址减小的方向增长。在内存中,“堆”和“栈”共用全部的自由空间,只不过各自的起始地址和增长方向不同,它们之间并没有一个固定的界限,如果在运行时,“堆”和 “栈”增长到发生了相互覆转载 2014-07-14 14:47:06 · 977 阅读 · 0 评论 -
内存到底分几个区(转)
下面有几种网上的理解,我整理一下:一: 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由os回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储转载 2014-10-21 09:40:41 · 903 阅读 · 0 评论 -
轻松搞定二叉树
版权所有,转载请注明出处,谢谢!http://blog.youkuaiyun.com/walkinginthewind/article/details/7518888树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树是递归定义的,因此,与二叉树转载 2014-10-21 16:29:38 · 424 阅读 · 0 评论 -
Android蓝牙串口程序开发
本文主要介绍了针对android的蓝牙串口上位机开发。一、帧定义android客户端按照一定的数据帧格式通过蓝牙串口发送数据到连接到MCU的蓝牙从机,MCU接收到数据后,按照帧格式的定义,接收数据帧,并解析数据帧,得到需要的数据。android客户端按照以下帧格式来发送和接收数据。1.1客户端发送的数据帧内容帧校验的和是从帧长开始到帧原创 2014-12-21 13:20:35 · 3554 阅读 · 1 评论 -
fork函数详解
fork函数是Unix like系统都提供的有关操作系统进程处理的一个api。fork函数可以获得一个与父进程一模一样的子进程,子进程获得父进程的数据空间和堆栈的一个副本。换句话说,二者并不共享内存,而是独立执行。fork函数的最大特点是父进程的一次调用,可以有两个返回,一个是父进程中返回子进程的id,一个是在子进程中返回0,还有一种情况是fork错误:原因一是进程超过最大值,原因二是内存原创 2015-01-19 23:01:29 · 1529 阅读 · 0 评论 -
ARM C程序 数据对齐访问问题
C或者C++等语言中会涉及到内存操作,嵌入式处理器中对数据的访问,需要遵循对齐原则,要求对齐的目的是为了提高数据的获取效率,举个例子,如果也给32位数字是4字节对的,cpu一条指令即可完成数据复制,如果一个32位数字是非4字节对齐的,那么cpu需要至少3条指令完成一个4字节数据的复制,如此一来降低了内存数据访问的效率。以实际遇到的问题为例char a[10] = {0};定义一个int...原创 2019-09-22 23:19:54 · 483 阅读 · 0 评论 -
Linux学习记录
Date:2014.10.22今天终于开始学习Linux了,学原创 2014-10-22 21:22:54 · 470 阅读 · 0 评论 -
从一个笔试题看C语言中float向double的提升问题
从一个笔试题看C语言中float向double的提升问题——lvyilong316首先看一段来自一个笔试题的程序段:float f=1.1; double d=1.1; cout这段代码输出0,那么为什么同为1.1的doble和float不相等呢?我们知道float和double比较的时候后发生类型提升,也就是float会提升为double。我们转载 2014-10-23 23:34:59 · 647 阅读 · 0 评论 -
vc中release和debug的区别
DEBUG和RELEASE 版本差异及调试相关问题:I. 内存分配问题1. 变量未初始化。下面的程序在debug中运行的很好。 thing * search(thing * something) BOOL found; for(int i = 0; i {转载 2013-11-17 11:07:11 · 1040 阅读 · 0 评论 -
C++ RTTI
C++编程思想,第十八章《RTTI运行时类型识别》(加了一些少量自己的话,应该不会误导大家,另外翻译版本比较罗嗦,把做了适当精简) RTTI是我们只有一个指向基类的指针或者引用的时候,确定一个对象的准确类型。这是C++的第二大特征。编程时候遇到了特殊的问题,而我们只要知道了一个一般指针的准确类型它就会迎刃而解。C++的意图是:尽可能的使用虚函数,必要的时候才使用RTTI。因转载 2013-12-01 22:42:35 · 1137 阅读 · 0 评论 -
matlab 很有用的总结
滤波器设计与分析: 滤波器分析 abs幅度angle相位filternorm计算以2或inf为范数的数字滤波器freqsLaplace变换频率响应freqspace频率响应步长转载 2013-12-05 18:44:53 · 13640 阅读 · 2 评论 -
最大公约数与最小公倍数
利用 #include "stdafx.h"#include //程序描述:用Euclid法来计算两个数的最大公约数#define MODE1 0#define MODE2 1#define MODE MODE2using namespace std;int gcd(int a, int b);int lcm(int a, int b);int main()原创 2014-05-03 18:44:44 · 447 阅读 · 0 评论 -
Start debug
Today,I start debugging again,and I hope to do better than before and programming forever!原创 2014-04-18 20:39:30 · 671 阅读 · 0 评论 -
const char* VS char* const
const char* or char const * means the pointer points to a const variable;char * const me原创 2014-04-21 09:31:22 · 668 阅读 · 0 评论 -
error: can't allocate .text, size 00002eb4 (page 0)
DSPlink时提示有如下问题。查找了一下资料fanxian原创 2014-04-22 16:53:10 · 2005 阅读 · 0 评论 -
float double精度和范围
1. 范围 float和double的范围是由指数的位数来决定的。 float的指数位有8位,而double的指数位有11位,分布如下: float: 1bit(符号位) 8bits(指数位) 23bits(尾数位) double: 1bit(符号位) 11bits(指数位) 52bits(尾数位) 于是,float的指数范围为-127~+128,而dou转载 2014-05-25 20:56:04 · 567 阅读 · 0 评论 -
串口通信协议
LZ之前只用了项目中需要用到MCU与上位机通信来进行调试,有对串口通讯做了一个更深入的研究。在网络通信中,“包”(Packet)和 “帧”(Frame)的概念相同,均指通信中的一个数据块。对于具体某种通信网络,一般使用术语“帧”。一种网络的帧格式可能与另一种网络不同,通常使用术语“包”来指一般意义的帧。帧格式: 总字节数+帧命令+帧内容+校验和串口通讯的一种协议:PC想M原创 2014-05-08 20:33:28 · 906 阅读 · 0 评论 -
MFC数据的传递
1、假设一个MFC对话框程序中有多个edit box,如何zhi转载 2014-06-10 18:49:26 · 776 阅读 · 0 评论 -
函数指针的使用
什么是函数指针?函数指针指向的是特殊的数据类型,函数的类型是由其返回的数据类型和其参数列表共同决定的,而函数的名称则不是其类型的一部分。 一个具体函数的名字,如果后面不跟调用符号(即括号),则该名字就是该函数的指针(注意:大部分情况下,可以这么认为,但这种说法并不很严格)。 函数指针的声明方法// 定义函数指针pfint (*pf)(cons转载 2014-05-29 16:17:17 · 790 阅读 · 0 评论 -
程序员必须知道的10大基础实用算法及其讲解 (来自cricode.com)
算法一:快速排序算法快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。快速排序使用分治法(Divide and conquer)策转载 2014-06-17 15:14:45 · 1396 阅读 · 1 评论 -
排序算法汇总
#include "stdafx.h"#include "sort.h"void Selection_Sort(int a[], const int length){int i, j;int n =length;int temp;for (i = 0; i {for (j = i; j {if (a[i] >= a[j]){temp =原创 2014-06-17 15:05:42 · 416 阅读 · 0 评论 -
C++:STL标准入门汇总
第一部分:(参考百度百科) 一、STL简介STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。 STL的代码从广义转载 2014-06-18 22:24:49 · 519 阅读 · 0 评论 -
C++常用类型总结
最近在学C++,其中一些常用的danbushuxi原创 2014-06-18 16:57:17 · 622 阅读 · 0 评论 -
Keil 中新建STM32F302 工程
折腾了一天,终于建好了一个完整的stm32 project,总结一下需要注意的地方。原创 2014-09-10 15:28:20 · 3113 阅读 · 1 评论 -
MFC About Time
1.使用CTime类 CString str; //获取系统时间 CTime tm; tm=CTime::GetCurrentTime(); str=tm.Format("现在时间是%Y年%m月%d日 %X"); MessageBox(str,NULL,MB_OK);2: 得到系统时间日期(使用GetLocalTime) SYSTEMTIME st; CStr转载 2013-11-15 20:11:21 · 523 阅读 · 0 评论