02 2020 档案

摘要:参考:https://www.cnblogs.com/xyelectric/p/9046048.html C语言中的关键字__attribute__ ,直接用的是绝对定位,在开发中一般用的比较少,但是有的ccm rsm 或者外部sram的使用,就需要这个绝对地址,不然单片机会把变量默认分配到内部sr 阅读全文
posted @ 2020-02-29 14:04 wdliming 阅读(3117) 评论(0) 推荐(0) 编辑
摘要:startup_stm32h743xx.s中的Stack_Size EQU 0x00000400Heap_Size EQU 0x00000200即堆栈空间大小和FreeRTOSConfig.h中#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 阅读全文
posted @ 2020-02-28 21:09 wdliming 阅读(964) 评论(0) 推荐(0) 编辑
摘要:前几天遇到了软件模拟spi的时候,读和写不一致的现象,后来仔细研究了一下,其实是时序性问题不对。 spi的有四种时序,硬件实现的时候,很简单,初始化后直接调用api即可。但是软件模拟就比较麻烦。 举例如下: 读时序如下: 写时序如下: 这两个结合起来就是下面四种spi模式的第四种 也就是模式2,如下 阅读全文
posted @ 2020-02-28 17:18 wdliming 阅读(2897) 评论(0) 推荐(0) 编辑
摘要:这个算是开发中的小技巧了,也不知道如何起标题。 通常为了节省单片机的引脚,我我们同城会使用比较多的数字电路来扩展,比如74hc574的D触发器,74ls138的38译码器,3态八路缓冲器/线路驱动器74hc541,还有就是串进并出的74hc595. 当然还有与非门、与门、或门等等最基本的数字逻辑电路 阅读全文
posted @ 2020-02-26 20:58 wdliming 阅读(646) 评论(0) 推荐(0) 编辑
摘要:近期项目中使用到了 IS64LV25616AL 的芯片,因此我要总结一下。IS64LV25616AL这个是256*16的的,数据格式是16位,所以一共有512KB的空间,比较大了,stm32F103zet6才64KB内部SRAM。可以使能byte enable,进行8位的访问,只要设置好了后,可以像 阅读全文
posted @ 2020-02-24 22:25 wdliming 阅读(1360) 评论(0) 推荐(0) 编辑
摘要:头文件中常见static inline函数,于是思考有可能遇到的问题,如头文件经常会被包含会不会产生很多副本?网上说法不一。于是自己验证。经过arm-none-eabi-gcc下测试后得出结论。 inline 关键字实际上仅是建议内联并不强制内联,gcc中O0优化时是不内联的,即使是O2以上,如果该 阅读全文
posted @ 2020-02-23 13:27 wdliming 阅读(968) 评论(0) 推荐(0) 编辑
摘要:w25qxx的三字节地址模式和四字节地址模式 我们知道w25qxx支持3-Byte和4-Byte模式,其实就是地址空间不同,对应的空间大小不同,3-Byte空间最大只达到128Mb W25Q256FV提供了两种地址模式,可用于指定存储器阵列中的任何数据字节。 3字节地址模式向后兼容仅支持最大128M 阅读全文
posted @ 2020-02-23 13:05 wdliming 阅读(1297) 评论(0) 推荐(0) 编辑
摘要:C语言原来是没有统一的标准的,第一个标准是90左右确定的,内容较以前有些改进: 1、增加了真正的标准库; 2、新的预处理命令与特性; 3、函数原型允许在函数申明中; 4、指定参数类型一些新的关键字,包括 const、volatile 与 signed; 5、宽字符、宽字符串与多字节字符; 6、对约定 阅读全文
posted @ 2020-02-23 08:58 wdliming 阅读(2881) 评论(0) 推荐(0) 编辑
摘要:1.下载并安装GMP库 GMP是The GNU MP Bignum Library,是一个开源的数学运算库,它可以用于任意精度的数学运算,包括有符号整数、有理数和浮点数。它本身并没有精度限制,只取决于机器的硬件情况。 1.1下载GMP库 GMP官网下载GMP库。 点击下图右侧红框处的download 阅读全文
posted @ 2020-02-16 19:19 wdliming 阅读(2119) 评论(0) 推荐(0) 编辑
摘要:参考链接:http://www.cnblogs.com/QG-whz/p/5456720.html 并做了自己的修改 1. 什么是gcc gcc的全称是GNU Compiler Collection,它是一个能够编译多种语言的编译器。最开始gcc是作为C语言的编译器(GNU C Compiler), 阅读全文
posted @ 2020-02-16 19:13 wdliming 阅读(446) 评论(0) 推荐(0) 编辑
摘要:0、序言本来可以直接使用乐鑫公司搭建好的linux环境的,他是基于14.04.1的版本,其实也不是很老,而且安信可也有ESP32 lubuntu下的环境,把ESP32和ESP8266开发环境都集成到lubuntu 32位虚拟机中,但是是百度云链接,因此暂时不下载,保存先,该虚拟机在VMware12以 阅读全文
posted @ 2020-02-16 13:25 wdliming 阅读(1224) 评论(0) 推荐(0) 编辑
摘要:在Ubuntu下,apt-get近乎是最常用的shell命令之一了,因为他是Ubuntu通过新立得安装软件的常用工具命令。 本文列举了常用的APT命令参数: apt-cache search package 搜索软件包 apt-cache show package 获取包的相关信息,如说明、大小、版 阅读全文
posted @ 2020-02-16 10:19 wdliming 阅读(226) 评论(0) 推荐(0) 编辑
摘要:最近,在linux下面开始进行学习一番,主要是很多c语言的深入教材都是linux方面的,msys2的模拟又不太好,因此就决定了这个方案 之前接触过esp系列的esp8266的单片机开发,当时用的eclipse,其实他还有安信可的lubuntu开发工具,是14.04.1LTS,那么省去我自己安装的麻烦 阅读全文
posted @ 2020-02-16 10:15 wdliming 阅读(837) 评论(0) 推荐(0) 编辑
摘要:作者:RednaxelaFX链接:https://www.zhihu.com/question/36103513/answer/66101372来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 1. 堆没有方向之说,每个堆都是散落的2. 堆和栈之间没有谁地址高之说,看操 阅读全文
posted @ 2020-02-14 22:52 wdliming 阅读(610) 评论(0) 推荐(0) 编辑
摘要:1、这个使用bcc3.1精简版来编译c程序的,使用dosbox来模拟仿真的,bcc3.1可是1992年的工具了,相当老了。dos年代的工具,是16位编译工具, 2、下面使用msys2的最新版gcc-9.2.0来编译运行的。对比bcc3.1,平台已经更新到64位了 阅读全文
posted @ 2020-02-14 21:52 wdliming 阅读(486) 评论(0) 推荐(0) 编辑
摘要:这个是stm32平台,小端模式下的仿真效果 阅读全文
posted @ 2020-02-13 16:29 wdliming 阅读(2079) 评论(0) 推荐(0) 编辑
摘要:在这本书中,也提到了,ADC、DAC转换在测控系统中是比较重要的,同时也提到了PWM的控制方法。 DAC我想,原理是比较简单的,就是把数字量对应对模拟量去,分辨率越高,精度就越高。DAC的用途也比较广泛,电动机驱动,变频压缩机,音响,电视等等。书中针对DAC0832的芯片,还提到,有转换方式有三种, 阅读全文
posted @ 2020-02-13 15:18 wdliming 阅读(1285) 评论(0) 推荐(0) 编辑
摘要:我自己移植好的ucos-II 2.52运行仿真工具,可以学习ucos-II,只需要电脑即可,无需任何硬件,绿色,无需安装,打开即可运行。结合任哲老师的代码,学习的好工具。下载后可以阅读 readme0.txt 来初步了解。 链接: https://pan.baidu.com/s/1EY_pEjCVl 阅读全文
posted @ 2020-02-13 12:35 wdliming 阅读(805) 评论(0) 推荐(1) 编辑
摘要:重新翻开这本书,还是有收获的,这里记录点ADC的知识点,虽然书上有些知识点跟不上时代的发展,但是基本上,还算比较系统的,也不是很过时,零几年的技术,数字电路的基本原理是没变过。这里结合自己的项目实际和书上的知识点整理一下。 1、ADC的采样过程,这个四步骤基本上,没变过,采样、保持、量化、编码,而且 阅读全文
posted @ 2020-02-10 17:30 wdliming 阅读(1326) 评论(0) 推荐(0) 编辑
摘要:转载自:https://ring0.me/2014/11/c-compiler/ C 程序为什么要编译才能执行?一个 C 程序在变成可执行文件的过程中,为什么要经过预处理、编译、汇编、链接这四道工序?让我们从这段简单的 C 程序开始。 为什么要编译 这并不是一个简单的问题。我们知道 Python 代 阅读全文
posted @ 2020-02-09 18:10 wdliming 阅读(244) 评论(0) 推荐(0) 编辑
摘要:中国的软件环境的确是不容乐观啊,小小的计算机软件,都无法下载的,你说,强调使用正版软件,但是中国的环境不允许,只能去其他软件下载,真是无语,越来越不易了,感觉社会在倒退啊~~~ 这个软件最新版是0.12,但是国内网站只能下载0.11~~ speedCrunch是一个免费开源的计算器工具,可以用于Ma 阅读全文
posted @ 2020-02-09 13:41 wdliming 阅读(906) 评论(0) 推荐(0) 编辑
摘要:https://blog.csdn.net/czg13548930186/article/details/78331692 http://c.biancheng.net/gcc/ https://www.cnblogs.com/king-lps/p/7757919.html 如果想把C语言变量的名称 阅读全文
posted @ 2020-02-08 22:02 wdliming 阅读(374) 评论(0) 推荐(0) 编辑
摘要:from: https://site.douban.com/234383/widget/notes/16373827/note/528386068/ aceking 2015-12-11 07:41:54 Pacman是Arch Linux 的包管理器。它将一个简单的二进制包格式和易用的构建系统结合 阅读全文
posted @ 2020-02-08 12:20 wdliming 阅读(242) 评论(0) 推荐(0) 编辑
摘要:以前一直使用本地gcc for windows unix for windows的软件,这些软件都是已经编译好的,可以直接在Windows下运行的,而且如果在环境变量中添加了,就可以在cmd中直接使用,和linux下差不多,但还是有点区别 网上偶然看到了 msys2的这个软件包,就去了解了。 区别如 阅读全文
posted @ 2020-02-08 11:42 wdliming 阅读(2780) 评论(0) 推荐(0) 编辑
摘要:from:https://man.linuxde.net/ls 目录基本操作 ls命令用来显示目标列表,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。 语法 ls(选项)(参数) 选项 -a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视 阅读全文
posted @ 2020-02-08 10:33 wdliming 阅读(286) 评论(0) 推荐(0) 编辑
摘要:一、安装 测试系统: windows 10 首先需要msys2的安装包,可以去官网下载安装包 官网地址: http://www.msys2.org/本次下载的是 msys2-x86_64-20180531.exe 注意:1.msys2不可以安装在FAT*分区 2.msys2不能安装在win XP系统 阅读全文
posted @ 2020-02-07 21:13 wdliming 阅读(39087) 评论(0) 推荐(2) 编辑
摘要:1.下载msys2,官方地址:http://www.msys2.org/,这里选择64位的安装器 2.安装完成之后,先别启动msys2,在 安装根目录/etc/pacman.d/ 下找到mirrorlist.mingw32、mirrorlist.mingw64和mirrorlist.msys并进行修 阅读全文
posted @ 2020-02-07 19:59 wdliming 阅读(1106) 评论(0) 推荐(0) 编辑
摘要:最近收到几个好心人发来的邮件,指出我的BinCalc存在低级BUG,即1+1算出来不等于2~~鉴于存在这种误解的人之多,俺不得不爬出来澄清一下~~我的Megatops BinCalc当中的计算器是RPN Calculator!(同学们难道没有发现BinCalc的计算器没有等号嘛~~囧rz) 如果你是 阅读全文
posted @ 2020-02-07 18:44 wdliming 阅读(369) 评论(0) 推荐(0) 编辑
摘要:部分参考了https://www.cnblogs.com/songdechiu/p/5397070.html 一、补码的优点 1、可以将减法转化为加法,在计算机中只保留加法 2、将符号位参与运算 二、如何实现? 我们先以钟表为例子,假设现在的标准时间为4点整,而有一个钟的时间为7点整。我们可以将时针 阅读全文
posted @ 2020-02-07 11:30 wdliming 阅读(1982) 评论(0) 推荐(0) 编辑
摘要:网上看到一个文章,里面讲述了四种高效c语言执行的方法, 1、使用空间代替时间 2、使用数学优化,而不是死计算,笨计算 3、使用位运算 4、使用嵌入汇编 前三点比较容易掌握,第四点基本上需要有比较深厚的汇编基础。 这里讲讲位运算, 1、无符号数据中, 左移1位,等价于除以2,右移1位,等价于乘以2,, 阅读全文
posted @ 2020-02-06 21:47 wdliming 阅读(1011) 评论(0) 推荐(0) 编辑
摘要:这个结构和哈佛结构是有区别的。冯诺依曼结构是程序存储区和数据存储器都是可以放到内存中,统一编码的,而哈弗结构是分开编址的。 阅读全文
posted @ 2020-02-06 21:36 wdliming 阅读(1064) 评论(0) 推荐(0) 编辑
摘要:从网上看到这一片文章,《为什么32.768kHz的晶振封装这么另类?》,平时也看见过这个实物,也没当回事,看了这篇文章之后,打开眼界,原来很多东西都是有历史渊源的。 这里提到了一个——音叉晶振 有点类似叉子。这因为是这样的结构,才导致了独一无二的封装。 阅读全文
posted @ 2020-02-06 14:42 wdliming 阅读(414) 评论(0) 推荐(0) 编辑
摘要:他的作用于在调试过程中捕捉程序错误 void assert (int expression); 断言函数,用于在调试过程中捕捉程序的错误。“断言”在语文中的意思是“断定”、“十分肯定地说”,在编程中是指对某种假设条件进行检测,如果条件成立就不进行任何操作,如果条件不成立就捕捉到这种错误,并打印出错误 阅读全文
posted @ 2020-02-06 14:30 wdliming 阅读(765) 评论(0) 推荐(0) 编辑
摘要:代码风格是一个可重不重要的东西,虽然,不影响代码正确性,但是其实,非常的重要,通常在项目中,不能随便写代码,需要有一点的规范,命名法便是其中一个比较重要的一点。 通常我自己有一套命名法,结合匈牙利法(主要是数据类型这块,因为嵌入式,数据类型比较重要,毕竟资源比较少的),其次是其他两种方法结合,下面说 阅读全文
posted @ 2020-02-05 17:31 wdliming 阅读(708) 评论(0) 推荐(0) 编辑
摘要:ADC的转换速率的概念 指 ADC 每秒能进行采样转换的最大次数,单位是 sps (或 s/s、sa/s,即 samplesper second),它与 ADC 完成一次从模拟到数字的转换所需要的时间互为倒数关系。 ADC 的种类比较多,其中积分型的 ADC 转换时间是毫秒级的,属于低速 ADC;逐 阅读全文
posted @ 2020-02-04 21:37 wdliming 阅读(1136) 评论(0) 推荐(0) 编辑
摘要:语言标准及文档● ISO C99http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1124.pdf● ANSI C Rationalehttp://www.quut.com/c/rat/title.htmlFAQ (常见问题)● comp.lang.c 阅读全文
posted @ 2020-02-04 21:30 wdliming 阅读(514) 评论(0) 推荐(0) 编辑
摘要:http://c.biancheng.net/view/159.html %d 按十进制整型数据的实际长度输出。 %ld 输出长整型数据。 %md m 为指定的输出字段的宽度。如果数据的位数小于 m,则左端补以空格,若大于 m,则按实际位数输出。 %u 输出无符号整型(unsigned)。输出无符号 阅读全文
posted @ 2020-02-04 20:04 wdliming 阅读(1053) 评论(0) 推荐(0) 编辑
摘要:通常,我们在c语言中使用比较频繁的是printf和scanf,其实在嵌入式领域中,字符串处理是比较频繁的,因此c语言的库函数中,有两个比较好的函数:sprintf和sscanf,他俩的功能如下: sprintf与printf函数的区别:二者功能相似,但是sprintf函数打印到字符串中,而print 阅读全文
posted @ 2020-02-04 17:25 wdliming 阅读(266) 评论(0) 推荐(0) 编辑
摘要:这本书应该算是一本科普性质的书籍,讲述了嵌入式操作系统及周边产品的历史、特点和展望,相比较而言,教科书通常是某一个rtos的深入解读,而这本书是教科书的辅助书籍,提到了很多教科书所没有的内容,值得一读。 1、看完书,我才知道ucos不是最早的rtos,vxworks也不是,而是vrtx,他是第一个真 阅读全文
posted @ 2020-02-03 15:49 wdliming 阅读(392) 评论(0) 推荐(0) 编辑
摘要:ucos-iiv2.52毕竟是老版本,现在ucosiii都已经出来很久了,而且马上就可以免费使用了,除了ucgui,因为ucgui是segger的,因此有必要分析一下。源码参考V3.03.00的版本。 解压出来后,是这个结构\Micrium\Software\uCOS-III, 信号量创建函数如下: 阅读全文
posted @ 2020-02-02 15:57 wdliming 阅读(540) 评论(0) 推荐(0) 编辑
摘要:这里结合任哲的书籍+源代码来分析信号量1、在任哲的书中,提到信号量只有普通的信号量,没有区分freertos所谓的二值信号量和计数信号量。可以看看源代码,ucos的代码风格是很不错的,个人认为这个风格比freertos好,看起来很舒服,不像freertos一大堆宏定义。可以看到,OSSemCreat 阅读全文
posted @ 2020-02-02 14:55 wdliming 阅读(384) 评论(0) 推荐(0) 编辑
摘要:在freertos中,信号量有三种类型,二值信号量,计数信号量,互斥信号量,这里总结前两种。 1、二值信号量比较直观,类似于红绿灯,创建的时候,默认是红灯的,其他任务都得不到这个信号量的,只有give之后才能变成绿灯,其他任务才能得到信号量,得以运行。(本质上,信号量是用队列实现的)上面是类比,在代 阅读全文
posted @ 2020-02-02 13:41 wdliming 阅读(3198) 评论(0) 推荐(0) 编辑