- 博客(75)
- 资源 (12)
- 收藏
- 关注
原创 树莓派
在玩过STM的各个系列后,对ARM cortex M系列能力范围有了初步的认识,没有打算再尝试A系列+Linux的嵌入式玩法,直接基于树莓派进行开发,而第一步是用的树莓派+window IoT而不是树莓派最成熟的raspbain系统。Windows IoT上不能运行普通window PC软件,支持有限的ARM体系CPU,目前仅有树莓派适配,所以想尝试window IoT最具性价比的就是
2017-12-29 21:55:50 654
原创 git退回后提交
修改了几个版本并提交到了remote端,然后通过reset退回到其中一个版本,继续修改后直接push,提示错误:![rejected] master->master(fetch first) error:failed to pushsome refs to 'https://github.com/xxx/xxx.git' 由于接触git不深,所以网上找到的解决方案是直接pu
2017-12-19 14:19:16 605
原创 win工程
window项目开发,一般使用vs+c#工具组合,和嵌入式相关的应用场景包括工具上位机、测试上位机和win IoT应用。System和System.IO是两个命名空间,虽然它们看起来是包含关系;在添加 using 的时候,只有using的命名空间下面的类才可以直接使用的,其下面包含的命名空间是不会引用的。所以要分别引用。编译中unreachable code表示无法执行到的代码
2017-12-01 22:42:21 363
原创 AI理论学习
#关于AI理论学习的笔记 浅显地理解AI领域,输入如感知推理,输出如下棋写诗,有为了更好通过图灵测试的仿生,或则是减少人工介入的“智能”。 图灵测试就是让人分不清是人还是机器,涉及自然语言处理、表达、推理和学习,刻意避免了直接的物理交互,完全的图灵测试还包括计算机视觉和机器人控制,用以增强感知和输出。 亚里斯多德的三段论开启了逻辑学,人工智能中的逻辑主义流派希望依靠此
2017-11-30 15:31:44 542
原创 py细节
python作为脚本语言,第一行一般会指出用什么可执行程序去运行它#!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器;#!/usr/bin/env python这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里。
2017-11-29 17:42:48 258
原创 OpenCV
初识OpenCV大概是2011年,国外的大神做了一个追踪小鱼游动的摄像机系统,发现了这个强大的开源工具,再通过这个认识了python语言,但由于是个人的爱好,所以学习断断续续也没有投入太多精力,直到各种人脸识别进入生活,人工智能再次火爆才重新拾起,现在做点笔记让自己多留点映像。 这些年对IT行业最大的感受就是开源,大概是为了形成一种事实标准应对竞争,很多强大的平台和工具都通过开源普及开来,
2017-11-28 19:49:41 634
原创 汇编语言
# 针对M0的汇编总结: 1、命令(Direction),不能转换为机器指令,主要用于控制汇编器和编译器对程序代码进行处理,而汇编助记符指令(Instruction)可以转换为机器指令。 2、Thumb指令,指示后续指令为Thumb指令,cortex M0只能使用Thumb指令。 3、AREA
2017-11-20 17:24:09 659
原创 mbed
mbed不仅仅是一个实时系统,也是一个开发平台,类似arduino那种,包括软件库SDK和硬件参考设计HDK,通过一个硬件抽象层处理不同厂商的MCU差异,让开发者可以不用太关注MCU,还提供了基于web浏览器的开发环境,省去安装和搭建环境;https://os.mbed.com,可能就是所谓的云端开发了吧。
2017-11-15 18:58:03 2269
原创 巨人肩膀—arduino
很早就开始接触arduino,只是后来嵌入式软件越做越深,越鄙视起这种“简单”的编程方式。 现在回过头想想,你应用层的C写得再好,汇编优化到不行,还不是实现哪些功能,在硬件性能逐渐过剩的时代,自己重复造轮子有多痛苦!对于量大的产品当然值得去细细打磨,但是作为玩而言,自己编写模块的代价太大了,并不是每个程序员都有可观的代码积累可以信手拈来,所以啊,还是大家“共享代码”来得实在。
2017-10-24 21:29:35 350
原创 surface重装系统
故事的起因大概是:在正版的windows上频繁破解office,结果在清理各种破解软件的时候把系统玩崩溃了然后小确幸自己养成了备份系统的习惯,正企图用备份的镜像还原系统,但是过程中却发现默认上了bitlocker,我却没有把恢复秘钥导出来保存。无奈跳过输入恢复秘钥的过程,直接进行下一步。掉入了BitLocker的坑了,秘钥默认存在onedriver上,关键是在国内怎
2017-10-15 12:43:24 6719
原创 Windows任务栏遮挡
安装小米随身WiFi的驱动后,通过MSTSC远程桌面连接,远程的电脑桌面任务栏被本地的任务栏遮住了!首先在本地的任务栏右键,选择任务管理器,选择正在运行的windows资源管理器进程,右键选择重新启动(R)OK,重启的Windows桌面任务栏不再遮挡全屏的其他桌面了。
2017-10-14 17:02:21 4221
原创 设置环境变量
安装过编译器类软件的,都知道通过更改我的电脑->属性->环境变量->系统变量,配置各种调用路径;反正只要可能被调用的可执行文件所在目录我们都使劲添加到path路径下,大不了为了便于管理,在系统变量中多加几个目录,然后在path下面调用%%引用进去。后来知道,也可以通过在cmd下执行: path=%path%;C:\XX (win+r进入指令窗输入CMD进入dos窗口)
2017-10-12 20:54:39 1011
原创 MCU的状态管理
对于微控制器而言,裸驱很难监控运行状态和资源占用,一般通过微系统实现,如uCOS有任务状态监控机制,可以通过如下配置实现在CPU_CFG.H 中: 将宏CPU_CFG_TIME_MEAS_INT_DIS_EN 为1 ,启用测量关中断时间的功能,测量功能保存任务总的关中断时间和任务最近关中断的时间,保存于OS_TCB中在OS_CFG.H中: 将宏OS_CFG
2017-10-12 10:37:39 989
原创 版本控制概念
版本控制的概念可以理解为记录文件内容随时间的变化,以便查阅特定时间版本修订情况,其发展接阶段和方法包括如下几种。方法一:通过复制整个项目目录的方式来保存不同的版本,或许再加上备份时间以示区别。好处:就是简单不足:易混淆工作目录,弄错弄丢文件没法撤销恢复,占用较多的存储空间 方法二:本地版本控制系统如最流行 rcs,它的工作原理基本上就是保存并管理文件补丁(patch
2017-10-11 20:14:34 833
原创 Ana-conda
conda是Anaconda的虚拟运行环境管理和软件包管理软件,部分替代virtualenv和pip,和pip用法一样。 conda也是一个可执行命令,其核心功能是包管理与环境管理,conda将几乎所有的工具、第三方包甚至python和conda本身都当做package对待,conda打破了包管理与环境管理的约束,能非常方便地安装各种版本python、各种package并方便地切换。
2017-10-10 19:19:05 781
原创 51单片机-存储
8051是传统的8位单片机,一般为256B 数据存储器RAM,4k程序存储器ROM (8052有384bytes的RAM,8K的ROM)在51系列中可定义的数据类型有data,idata,xdata,pdata: data:指芯片内核中地址0x00-0x7F的128个字节RAM区域和4个分组的R1-R7寄存器区域,所占用的区域,汇编ACC访问,可以直接读写,速度最快,生成代码小。i
2017-10-10 10:48:54 963
原创 keil工程无法调试
在使用STM32F207开发的过程中遇到一个问题:使用ulink连接板子,可以正常下载,然后通过keil进入debug模式,发现运行窗口为灰色,通过停止加复位可以让运行按钮变亮,但是程序在任何位置都不能打断点。排查了工程和keil软件配置,都没问题,也排查了硬件ulink和板子,都是正常的。然后在进入调试时无意中发现如下告警(不是一直都有)。对告警中的flash
2017-09-13 21:29:49 11706
原创 notepad++
Notepad++是 Windows操作系统下的一套文本编辑器(软件版权许可证: GPL),有完整的中文化接口及支持多国语言编写的功能(UTF8技术)。Notepad++功能比 Windows 中的 Notepad(记事本)强大,除了可以用来制作一般的纯文字说明文件,也十分适合编写计算机程序代码。Notepad++ 不仅有语法高亮度显示,也有语法折叠功能,并且支持宏以及扩充基本功能的外挂模组。
2017-09-04 21:35:13 554
原创 TinyOS
TinyOS是Berkeley(加州大学伯克利分校)开发的开放源代码操作系统,专为嵌入式无线传感网络设计,操作系统基于构件(component-based)的架构使得快速的更新成为可能,而这又减小了受传感网络存储器限制的代码长度。 TinyOS是一个具备较高专业性,专门为低功耗无线设备设计的操作系统,主要应用于传感器网络、普适计算、个人局域网、智能家居和智能测量等领域。 TinyOS相
2017-09-01 21:53:00 1797
原创 Mercurial
Mercurial 是一种轻量级分布式版本控制系统,采用 Python 语言实现,易于学习和使用,扩展性强。其是基于 GNU General Public License (GPL) 授权的开源项目。更轻松的管理。传统的版本控制系统使用集中式的 repository,一些和 repository相关的管理就只能由管理员一个人进行。由于采用了分布式的模型,Mercurial 中就没有这样的困扰,
2017-09-01 21:27:54 383
原创 about keil
KEIL工程的编译提示输出信息中有一个语句“Program Size: Code=86496 RO-data=9064 RW-data=1452 ZI-data=112316 ”Code:即代码域,指编译器生成的机器指令,这些内容被存储到ROM区。RO-data:Read Only data,即只读数据域,指程序调用的只读数据,被存储在ROM区,例如C语言中const关键字定义的变量就
2017-09-01 19:56:08 452
原创 IAP
IAP程序一般分为两部分:IAP和APP;IAP代码存放起始位置在片上FLASH起始区域 0x8000000,APP代码则存放在离这个位置一定距离的位置,这个距离一定是大于或等于IAP本身所占空间大小。
2017-08-30 21:58:29 964
原创 ECOS
嵌入式操作系统eCos(Embedded Configureable Operating System)特点:可配置性、可裁减性、可移植性和实时性。如其名所述,最主要技术特色就是功能强大的配置系统,内核可配置,在源码实现对系统的配置和裁减。与Linux的配置和裁减相比,eCos的配置方法更清晰、更方便;且系统层次也比Linux清晰明了,移植和增加驱动模块更加容易。eCos出生于1997
2017-08-23 20:04:03 3419
原创 加密算法
HASH哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。一般用于快速查找和加密算法。用来产生一些数据片段(例如消息或会话项)的哈希值的
2017-08-18 08:56:47 547
原创 FM0
FM0编码 (Bi-Phase Space Coding双相间空号编码)工作原理:在一个位窗内采用电平变化来表示逻辑,如果电平从位窗的起始处翻转,则表示逻辑“1”。如果电平除了在位窗的起始处翻转,还在位窗中间翻转则表示逻辑“0”。一个位窗的持续时间是25μs。调制系数,在调制技术中用于衡量调制深度的参数。在调幅(AM)技术中,调制系数指调制信号与载波信号幅度比,也称
2017-08-18 08:25:10 4750
原创 位域
位域 标准C提供了一种基于结构体的数据结构--位域(BitField),位域就是把一个存储单元中的二进制划分为几个不同的区域。并说明每个区域的位数。每一个域有一个域名,允许在程序中按域名进行操作,这样仅仅是操作和管理一个状态位, 位域的定义格式如下:struct 位域结构名{ 位域列表 }; 位域列表格式为: struct value{ unsigned i
2017-07-31 18:26:07 385
原创 cortex M0
Cortex M0: 32位ARMv6M架构,核心为冯诺依曼结构,3级流水线RISC,指令和数据共享同一总线,0.85DMIPS/MHz。 现有尺寸最小、能耗最低(在不到12K门的面积内能耗仅有 85 µW/MHz)的ARM微控制器,1/3的Cortex M3芯片面积,超低的门数便于和其他单元组合成强大的SOC,如无线通信和传感器SOC。 只有56个控制指令便于彻底掌握
2017-07-31 18:10:36 1398
原创 BLE SOC
nRF51 VS CC254x CC2541:8051 微控制器内核,128kB 和 256kB 闪存的CC2541F128/F256,在所有功率模式下具有保持功能的 8KB RAM,40pin封装。5通道直接内存访问 (DMA),通用定时器(1个16 位,2个8位),红外(IR)生成电路,8通道和可配置分辨率的12位模数转换器 (ADC),2×UART、23个通用I/O引脚(驱动能力
2017-07-26 20:17:25 1484
原创 无线传感器网络(WSN)
自组网(平行通信&上下通信)ZigBee : 协议工作在20~250 kbps,足以应对低速传输需求,自组网对非固定设备价值更大。基于IEEE802.15.4,具有高可靠、高性价比、低功耗的网络。ZigBee可工作在2.4GHz(全球流行)、868MHz(欧洲流行)和915 MHz(美国流行)3个频段上,分别具有最高250kbit/s、20kbit/s和40kbit/s的传
2017-07-23 15:07:51 4402
原创 Fault
(CoreDebug->DHCSR & 1)__breakpoint()函数是ARM编译器所支持的内部指令,这个函数的作用是在指令流中插入一个断点指令(BKTP) SCB ->CCR |= 0x18; /* enable div-by-0 and unaligned fault*/SCB ->SHCSR |= 0x00007000; // enable Us
2017-07-21 11:07:59 1180
原创 土壤含水量
定义:指土壤绝对含水量,即100g烘干土中含有若干克水分,也称土壤含水率。大致可分为化学结合水,吸湿水和自由水三类化学结合水和吸湿水在土壤中不能自由移动,故不能被植物吸收利用,膜状水仅能作极缓慢的移动,且含量很少,远不能满足植物的需要,毛管悬着水和毛管支持水是供植物吸收利用的最有效的水分,重力水因只能短时存在,不能持续为植物利用,而且过多时常会造成土壤通气不畅,影响植物生长,但作为水量平衡计算
2017-07-18 11:18:37 4690
原创 RTX
初始化:osKernelInitialize();osKernelStart();int32_t osKernelRunning(void); 检验运行否任务:osThreadId ID_ThreadRF = 0;osThreadDef (Task_CC1101, osPriorityHigh, 1, 0) ; // osThreadDef(na
2017-07-18 08:54:39 1510
PC-Lint软件包及配置文件
2017-10-20
diffcount工具
2017-10-20
STM32串口烧程软件
2017-09-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人