- 博客(520)
- 资源 (3)
- 收藏
- 关注
转载 小议ARM Cortex-m0/m4系列的总线差异
下面的一段话来自http://bbs.eeworld.com.cn/thread-1068770-1-1.html,讲述的挺详细的,我认为非常好,因此,都转载下:从一个简单问题说起:STM32的GPIO翻转速度(比如用来模拟时序)最快能多快?写段代码测试一下:void test(void) { for(;;) { GPIOA->ODR = (1<<5); GPI...
2020-11-09 22:33:26
2128
原创 spi英文资料
https://www.analog.com/en/analog-dialogue/articles/introduction-to-spi-interface.html图文并茂,强烈推荐,spi看这个文章就够了。
2020-11-06 09:59:05
331
原创 比较好的I2C的英文学习网站
英文好的,直接看英文,不好的,浏览器翻译下。写的还不错,学到了很多书本上没有的,另外可以翻看nxp的spec,比较nxp是iic的专利所有者。https://i2c.info/https://aticleworld.com/i2c-bus-protocol-and-interface/...
2020-11-06 09:45:09
218
转载 每个程序员都应当知道的“大小端”
除了维基百科,我认为中文里面讲述比较好的大小端文章了,因此转载下。概述机器是分大小端的,这对我们编程有什么影响呢?什么又是大小端呢?也许我们很多时候都不清楚,但仍然可以很好地使用电脑,或者编写代码。但我认为《圣经》里有句话说得很好,“你应该了解真相,真相会使你自由”。所以这次,我要揭开“字节端”的面纱,共享科学之美。小故事Jonathan swift在1726年写的讽刺小说《格列佛游记》,小人国的内战就源于吃水煮鸡蛋时究竟是从大头(Big-Endian)敲开还是从小头(Little-End
2020-11-05 09:33:51
538
转载 C语言union用于打包和拆包数据
使用union来打包/拆包数据联合的成员存储在共享存储区中。这是使我们能够找到有趣的工会应用程序的关键功能。考虑下面的联合:union { uint16_t word; struct { uint8_t byte1; uint8_t byte2; }; } u1;复制代码此union内部有两个成员:第一个成员“ word”是一个两字节的变量。第二个成员是两个单字节...
2020-11-04 19:35:51
1083
转载 #if defined——Preprocessing directives的使用
原文:https://stackoverflow.com/questions/9946108/if-defined-x-y-is-this-valid下面的示例显示||的更常见用法和&&操作符针对#defined宏:#define AA 1#define BB 2#if (defined AA) || (defined BB) #warning "A or B"#endif#if (defined AA) && (defined BB) .
2020-11-04 17:30:20
224
原创 英文网站上还有很多不错的讲解BootLoader的文章
另外英文网站上还有很多不错的讲解BootLoader的文章:https://allthingsembedded.net/2019/05/19/bootloaders-and-arm-cortex-m-microcontrollers-stm32f7-introduction/https://www.iar.com/support/tech-notes/general/creating-a-bootloader-for-cortex-m/https://jcastellssala.com/2016
2020-11-03 08:56:12
110
转载 spi通信基础
这篇文章很不错:https://www.circuitbasics.com/basics-of-the-spi-communication-protocol/特此转载。BASICS OF THE SPI COMMUNICATION PROTOCOLPosted byScott Campbell|DIY Electronics|53When you connecta microcontrollerto a sensor, display, or other module, ...
2020-11-02 13:30:02
543
转载 嵌入式OS入门笔记
https://blog.csdn.net/raymond_kwan/category_2390843.html比较好的学习资料
2020-11-02 13:24:49
281
转载 类linux驱动模块框架module_init(init_fun)在STM32上的实现
原文:https://zhuanlan.zhihu.com/p/81309285设计思想利用编译器的特性,在程序编译时将各模块初始化函数顺序存放到内存的指定地址,然后在程序运行时main函数从这块内存区域中 依次调用各模块的初始化函数,自动完成各个模块的初始化工作,同时增强了程序的高内聚低耦合特性,提高了软件的质量。试验环境工具链:Keil5 开发板:STM32F103ZE1. 修改链接脚本修改链接脚本的目的是:在STM32的内存中,留出一块合适的大小(大小根据自己的需求调整), 用
2020-10-31 20:50:00
529
转载 RTT笔记-分析自动初始化机制
原文:https://www.jianshu.com/p/9d377ddc8acc首先全局搜索一个任意的自启动宏,便能找到在rtdef.h中由如下定义#define INIT_BOARD_EXPORT(fn) INIT_EXPORT(fn, "1")/* pre/device/component/env/app init routines will be called in init_thread *//* components pre-initialization
2020-10-31 14:38:58
869
转载 iar平台中如何创建bootloader程序
原文:https://www.iar.com/support/tech-notes/general/creating-a-bootloader-for-cortex-m/Creating a bootloader for Cortex-MTechnical Note 160822Targets:ARMComponent:GeneralUpdated:2020/8/17 11:32IntroductionThis Technical Note provides guid
2020-10-30 13:15:12
1399
转载 Cortex-M3/M4与Cortex-M0/M0+架构IAP过程区别
Cortex-M3/M4与M0架构IAP过程简单总结Cortex-M3/M4架构下的IAP Cortex-M0架构下的IAP Cortex-M0+架构区别 这个文章比较不错,因此特意转载:https://blog.csdn.net/hackercircle/article/details/91127598,很多细节可以到库函数中去验证,这样会更加深刻。同时看看权威指南,内核的东西还是arm的文档比较权威,当然芯片商家也会有部分的内核说明,因此,相互结合起来就比较好了。本文主要侧重Corte
2020-10-30 12:32:24
1449
转载 Keik MDK中使用AStyle插件对代码进行格式化处理
转载自:https://mp.weixin.qq.com/s/nVgBG2Mk-YfhT2VNfs0WWA今天给大家介绍一个非常好用的小插件Artistic Style,最新版本是3.1,下面是官网链接:http://astyle.sourceforge.net/从官网介绍,Artistic Style适用于C,C ++,C ++ / CLI,Objective‑C,C#和Java源代码的,是一款免费,快速,小型自动格式化程序。由Jim Pattee维护和更新,原始作者是以色列的塔尔·戴维森(T
2020-10-30 12:25:02
476
转载 有关于stm32 cotex m0 系列的iap升级
最近在搞stm32的在线升级,网上资料也是挺多的。看了好多文档之后总算是理解了。现在自己再整理一遍。个人觉得,如果要做IAP的话,首先得知道一些基础。1、cotex m系列都是支持程序在flash里面运行的,里面由几个特别寄存器用来存sp(栈指针)和cp(程序跳转指针)。(程序跳转的时候需要用到)2、cotex m 系统当发生硬件中断的时候,cp指针会被强制切换到(0x800 0004)flash里面的复位地址中,然后根据中断号进行指针偏移,这些中断入口的在启动文件(startup_stm32f
2020-10-29 15:29:29
444
原创 代码比较工具(代码比对软件,比较软件)收集整理
1、Beyond Compare,这个是收费的,有资金可以买一个,的确是非常不错的2、Meld免费,可以对比文件夹,而且界面比较好看3、comecompare,是微软出品,有free版本,pro要收费,不过free够用可以对比文件夹,界面看着相对不太习惯。4、winmwerge,免费的,但是好像功能不怎么样。5、AptDiff,刚刚使用,也可以对比文件夹,这5个都可以安装,平时肯定用得着...
2020-10-26 10:20:27
1244
转载 在IAR中利用AStyle插件格式化代码
IAR编译器中没有自动格式化代码的功能,不过可以通过安装AStyle插件来实现代码的格式化。首先在官网上下载AStyle插件。https://sourceforge.net/projects/astyle/files/将下载好的文件解压,然后将AStyle文件夹复制到IAR文件的安装目录下。打开用IAR,在Tools菜单栏选择最底下一项Configure Tools出现一个新建菜单对话框单击右边new按钮在Menu Text底下填新建菜单名称Astyle Current File点击Comm
2020-10-26 09:01:44
959
1
转载 配置管理工具Keil Configuration Wizard
一直在用keil,最近才发现还有个这个功能,它就是通过特定的注释来识别,生成一个可修改的表格。示例图和注释代码如下:image.png#ifndef _LORAWAN_DEFAULT_CONFIG_H#define _LORAWAN_DEFAULT_CONFIG_H// <<< Use Configuration Wizard in Context Menu >>>\n// <h> LORAWAN_JOIN// <o.
2020-10-20 19:49:57
859
原创 IAR参数变量 _以及如何添加vscode
这样可以把整个工程都用vscode打开了,而不是一个文件,您可以为路径和参数使用参数变量,例如,当您在选项对话框中指定include路径时,或者当需要基于当前上下文的类似宏的扩展时,例如在工具的参数中。您可以使用广泛的预定义参数变量以及创建自己的参数变量,请参见配置自定义参数变量对话框。这些是预定义的参数变量:变量 描述 $COMPILER_ARGS$ 除了在编译使用编译器时使用的文件名之外,所有编译 $CONFIG_NAME$ 当前构建配置的名称,例如Debug或者R..
2020-10-20 19:34:06
699
原创 如何使用sct文件、icf文件来定位不同的内存存储变量(cortex-m3平台)keil+iar
好久没写博客了,快到国庆了,经历了一些项目和坑,还是要保持记录的好习惯,好记性不如烂笔头嘛。 目前使用了cortex-m3内核的两款单片机:stm32f1和lpc1768的,虽说是cm3内核,但是两个芯片添加的外设是有区别的,很多外设的使用方式也是各有千秋,st在国内比较火,全国研讨会如火如荼,每年都有。lpc1768是属于NXP半导体,前身是飞利浦半导体,也算是老牌的半导体公司,相比较stm32,国内入门的论坛没有stm32火爆,但我相信质量过得去。 两款单片机都是比较老了,st...
2020-09-30 16:56:23
797
原创 LPC1768 IAR环境下使用完整64K内存的方法_整理
https://blog.csdn.net/tpoem/article/details/98372896这个芯片是NXP公司出的很经典的一款Cortex-M3芯片了虽然已经过了很多年了,但是依然还有很多地方在用着这个芯片有一个很不方便的地方它的64K内存不是连续的!USB和片上以太网MAC各用了16KB SRAM作为缓冲区假如不使用USB或者不希望用这个宝贵的SRAM做MAC的缓冲区,这个32KB内存默认情况下都是没办法用的网上大多都是KEIL环境下的修改教程我司用.
2020-09-30 16:37:45
467
原创 C 语言中浮点数的秘密(绝对通俗易懂)
https://www.cnblogs.com/CodeWorkerLiMing/p/13656197.html详见博客园文章
2020-09-12 11:10:30
226
原创 杂文
嵌入式软件编程,其实往深入了,就需要很多计算机科学方面的基础知识,另外操作系统,编译器,连接器,ide的特性,另外还要了解硬件的知识,数点模电的基础知识也少不了的。活脱脱=计算机+电子技术偶尔空了,可以了解下pcb的制作,总而言之就是范围很广,细节却又很深。...
2020-09-05 16:32:08
109
原创 Cortex‐M3权威指南第一遍阅读后的记录
这本书,买了很久,到现在算是大致浏览了一边,还是非常有收获的,以前都是直接看的芯片的手册,但是芯片手册在内核当中,讲述的知识点是比较少的,因此相互结合的看,很有必要。这里就自己想到什么就整理什么,肯定有遗漏的,以后有机会看第二遍,再完善。1 双堆栈的特点,MSP、PSP,看着有点迷糊,两者物理地址是一样,主堆栈指针(MSP):复位后缺省使用的堆栈指针,用于操作系统内核以及异常处理例程(包括中断服务例程)。这个用于操作系统的任务切换,中断处理等用途。 进程堆栈指针(PSP):由用户的应用程序代...
2020-08-04 14:38:15
356
原创 常用的时序图软件收集
写软件,有时候不可避免要话时序图,手工画,那就考研你的美术功底了,怎么画都行的,网络上都有一些小工具是可以帮助我们画时序图的1、AndyTiming,免费的,这个有一个知乎的博文可以参考https://zhuanlan.zhihu.com/p/22211854,功能挺强大的2、TimeGen 3.2 有lite版本,免费的,具体没怎么用3、另外还有一个TimingEditor,还有一个文档http://timingeditor.sourceforge.net/quickguide.html,需.
2020-07-03 17:12:28
2967
原创 TrueSTUDIO for stm32配置小技巧
最近一直在使用STM32CubeMX和TrueSTUDIO进行STM32的程序开发,用起来已经是得心应手了。使用TrueSTUDIO的过程中知道了一些环境设置的小技巧,可以提高工作效率过减少问题,故专门贴出来。TrueSTUDIO的环境设置主要是在项目的属性设置对话框里进行设置。(1)使用并行编译在C/C++ Build的Behavior设置页面,勾选Enable parallel b...
2020-04-21 14:56:17
641
原创 Embitz完全免费的开发环境
New Embitz 2.0 is coming soon, highlights:Hotplug menu, connect running target without stopping (and inspect with live variables and OS tools)New debug interface engine with flash erase and program...
2020-04-20 09:01:57
2197
原创 printf调试打印方法总结一
平台:stm32,可以推广到其他32位单片机中开发软件:keil、IAR、SEGGER Embedded Studio for ARM调试仿真器:stlink、jlink说明:1、串口打印,不推荐,需要占用串口外设不划算2、在线调试中的rtt打印方式,需要keil进入调试模式,在打开rtt,viwer即可...
2020-04-07 13:47:33
653
原创 stm32如何才能正常运行的调试笔记
想使用野火或者安福来的代码模板来学习这个stm32,毕竟他买使用量挺多的,代码风格尤其是安福来比较好,因此想试试他们的工程,但是弄了好长一段时间,单片机就是不能运行,进入debug,就死机,停在硬件错误或其他地方。后来想想,真是低级错误导致的,因此整理一下。今后遇到不能正常运行的情况下,先冷静下来思考而不是盲目的改代码。1、单片机能否下载,能否调试,验证启动引脚boot0、boo...
2020-03-31 10:26:23
791
原创 自己常用的vscode的插件备忘录
1、42header、koroFileHeader、psioniq File Header这三个是由于插入文件说明,函数说明的。我在编写c语言的时候经常用到的。记得要修改快捷方式。2、C/C++、C/C++Snippets,这两个是用于语法高亮,代码模板3、C/C++ Compile Run这个可以用于一键编译运行c语言,需要gcc的支持,安装好gcc才行4、C++ Intellise...
2020-03-31 10:16:38
1020
原创 巧用c语言数组来操作数字逻辑电路
这个算是开发中的小技巧了,也不知道如何起标题。通常为了节省单片机的引脚,我我们同城会使用比较多的数字电路来扩展,比如74hc574的D触发器,74ls138的38译码器,3态八路缓冲器/线路驱动器74hc541,还有就是串进并出的74hc595.当然还有与非门、与门、或门等等最基本的数字逻辑电路来构成gpio的扩展。数字电路的扩展的理解:这里有两点比较值得注意的,1、很多时...
2020-02-26 20:58:17
957
转载 STM32堆栈空间大小设置
1. 设置堆栈空间大小在使用STM32编程时,一般情况下我们不会关注堆栈空间的大小,因为在STM32的启动文件中,已经帮我们预先设置好了堆栈空间的大小。如下图所示的启动代码中,Stack栈的大小为:0x400(1024Byte),Heap堆的大小为:0x200(512Byte)。这也是为什么一个基础的工程编译后,RAM的空间也占用了1.6K左右的原因,因为堆栈的空间均分配在RAM中,可...
2020-02-26 16:47:15
9840
原创 stm32——fmsc控制外部SRAM——小结
近期项目中使用到了 IS64LV25616AL 的芯片,因此我要总结一下。IS64LV25616AL这个是256*16的的,数据格式是16位,所以一共有512KB的空间,比较大了,stm32F103zet6才64KB内部SRAM。可以使能byte enable,进行8位的访问,只要设置好了后,可以像片内的sram一样,随意访问的片外的sram,可以使用指针形式,可以at绝对地址定位的方式(ac...
2020-02-25 12:07:56
846
原创 esp8266之lubuntu的环境搭建(1)——linux系统升级(从14.04.1升级到16.04.6)
0、序言本来可以直接使用乐鑫公司搭建好的linux环境的,他是基于14.04.1的版本,其实也不是很老,而且安信可也有ESP32 lubuntu下的环境,把ESP32和ESP8266开发环境都集成到lubuntu 32位虚拟机中,但是是百度云链接,因此暂时不下载,保存先,该虚拟机在VMware12以上环境下打开,请广大开发者自行下载。后来,想折腾一下,在原来的基础上升级一下,以前也真是...
2020-02-16 14:18:58
1305
原创 Maxima 的基本微积分操作(链接)
https://blog.csdn.net/liyuanbhu/article/details/7829422
2020-02-10 14:02:13
369
原创 c#接口interface学习
好久没学习C#了,上次已经学习到了接口这块,感觉有点不太好理解,因此重新学习,在vs上面运行了,本来不想写博客的,但是正好看到网上有人说,写博客可以加深印象,因此,写吧。下面是菜鸟教程的实例using System;using System.Collections.Generic;using System.Linq;using System.Text;using System....
2019-12-08 21:13:00
205
原创 keil中error: #70: incomplete type is not allowed—解决方法
今天在写程序的时候,想使用sizeof求数组的大小,数组中其他c文件定义,在头文件使用extern uint8_tbuff_value[]; 声明但是keil编译报错,网上查了,发现,需要写成extern uint8_tbuff_value[30];把数组的大小固定了,才能编译通过。...
2019-12-07 17:36:51
2067
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅