
微控制器/STM32/DSP/PLC/EMC
.
unsv29
嵌入式软件开发、物联网...
展开
-
单片机代码稳定性技术
刚刚特意建了一个稳定性技术的原创 2023-03-02 20:36:45 · 252 阅读 · 1 评论 -
arm 堆栈
先转一篇http://blog.youkuaiyun.com/slj_win/article/details/16906141关于堆和栈已经是程序员的一个月经话题,大部分有是基于os层来聊的。那么,在赤裸裸的单片机下的堆和栈是什么样的分布呢?以下是网摘:刚接手STM32时,你只编写一个int main(){while(1);}BU原创 2023-03-02 20:22:14 · 1063 阅读 · 3 评论 -
MDK 只能在线调试汇编 不能调试C语言的一个原因。
MDK 只能在线调试汇编 不能调试C语言的一个原因。原创 2022-06-04 14:54:00 · 476 阅读 · 0 评论 -
一款基于法拉电容的UPS电路设计思路[转]
<如何避免现场设备系统损坏或丢数据?>系统电源正常时,充电电路即给UPS充电。系统电源掉电时,UPS放电给系统提供备用电能,建议UPS在掉电后能持续给文件系统供电能力不低于10秒,在10秒续航期间内,系统可以将电源异常状态上报、及时保持临时重要数据、关闭文件系统,保证系统稳定性,避免文件系统在掉电情况下出现损害,影响应用程序的正常启动。...转载 2020-10-11 15:03:59 · 1224 阅读 · 0 评论 -
[转]STM32自定义stack和heap位置和大小 [复制链接]
本博主:下列文章仅作参考,涉及到CCM RAM和 DMA相关还是非常容易出问题的,仅仅作为参考。有驱动把栈作为DMA内存,所以极易出问题,性能提升多少暂且不谈,通用性还是不好。http://www.stmcu.org.cn/module/forum/thread-615259-1-1.html Stack和heap是运行c运行环境比较...转载 2020-02-18 22:41:53 · 1360 阅读 · 0 评论 -
ECLIPSE + STM32
参考http://blog.youkuaiyun.com/at91rm9200/article/details/22853621,将自己的做法记录一下:(1)看自己电脑里面有没有java?(http://blog.youkuaiyun.com/cddcj/article/details/55258348)一看有java,版本是1.7.0_21,是个64位系统的java,在控制面板里面看看系统:原创 2017-08-30 09:28:26 · 3022 阅读 · 0 评论 -
惊了!modbus的RTU 3.5字符
一直以为3.5字符是两个字节之间的,没想到是事实两个帧之间的。而两个字节之间的是1.5字符。看样子我错了好多年。类似的错误不知道还有多少。原创 2016-03-13 07:01:34 · 3692 阅读 · 4 评论 -
EMC trainning杂谈
EMC:中国了解EMC从认证入手。买到欧盟要强制符合EMC标准,上升到法律标准。中国有3C 标准,但在很多行业不是强制性的。大学很少搞EMC,以前。EMC产生的原因?产生问题,所以要解决问题,所以产生EMC。EMC是解决电应力的一部分问题。EMI就是你对别人的影响。包括CD RDEMS别人不能干扰到我。包括静电 脉冲群 浪涌 雷击。变频器启动产生浪涌。火车接地,地很脏,原创 2015-11-27 13:14:11 · 1070 阅读 · 1 评论 -
重视示波器的使用与电路测试
对于示波器的使用 一直是被我忽视的。今天培训的MR.YIN 说 示波器太太重要了。工具善其事 必先利其器,早该想到了。就像弄单片机,深入了解IDE也很重要。 我课堂记录了几点,如下:(1)无源探头往往几十pf,有源探头往往更准。老师一再强调探头的重要性,并且说探头很容易坏。有时候,几个牛逼的探头甚至比示波器本身更值钱。为什么探头容易坏,因为有时候为了采集的准确原创 2015-11-27 13:11:00 · 873 阅读 · 1 评论 -
STM32.Makefile之命令测试
(1).PHONYphony_百度翻译phony 英 [ˈfəʊni] 美 [ˈfoʊni] adj. 伪造的; 假的; 虚伪的; 做作的; [例句]You are a hypocrite and you are a phony.你是个伪君子,是个骗子。https://www.cnblogs.com/god-of-death/p/9084324.ht...原创 2019-05-06 11:01:33 · 282 阅读 · 0 评论 -
STM32.循序渐进Makefile(1)
首先找教程,以前我印象里有一个文章,找到了,如下:如何系统地学习 Makefile 相关的知识(读/写)?而我用的是STM32,当然用的是armcc编译器(为什么不用gcc呢?原因是我刚开始用gcc编译一个C文件出现问题了,哦 刚才怎么又好了!)现在就按照上面的这个链接在gcc和armcc上来一把。首先把例子中的链接稍微简化一下,就是把printf这个给删掉,因为涉及到库...原创 2019-05-05 14:57:04 · 514 阅读 · 0 评论 -
PLC开发细节之用哪个驱动?
想来想去,要考虑格局!bootloader一定是通用的bootloader,不能只是考虑STM32,还应该考虑别的芯片,这样才是一个像样子的作品。像样子的作品,意味着简单的作品,清晰的作品,那么就应该把驱动限制在某个地方,而不是到处显摆。应该放弃以前的复杂的驱动,毕竟bootloader的驱动与以前的通用的驱动还是不同的。因为bootloader的驱动不用中断,因为bootloader的驱动只是用...原创 2018-05-05 15:40:30 · 782 阅读 · 0 评论 -
MBED 5.5.1 SystemCoreClock 问题!
20200708 昨天突然发现Systick这个定时器不大好用了,慢了不少。但是串口和以太网都好用,所以这些天没发现这个问题。把mbed启动过程屏蔽了就好用了。发现是是SystemCoreClock这个值 由168000000变为成了0x20000000,那么什么时候变得呢?断点发现是在__user_setup_stackheap里面变的。这个值估计就是成了ram的起始地址了。找了一下网上,发现了香水城的帖子 《【实战经验】使用mbed 进行STM32 开发及STM32F0的时钟问题》,.原创 2020-07-08 10:25:10 · 689 阅读 · 0 评论 -
[MDK] KEIL编译文件生成的.O文件发生了重命名情况
大概过程是 生成一个 a.o ,然后把a.C的位置变动了 再次编译,结果又生成一个a.o,这两个a.o在一个文件夹下,结果提示要重新命名。下面这个帖子 也说了这个事情:《[MDK] KEIL编译文件生成的.O文件发生了重命名情况》所以解决方案就是 先 clean一下 target(目的把原先的a.o删除),然后再生成a.o 这样就搞定了!...原创 2020-07-03 11:26:20 · 2995 阅读 · 0 评论 -
__use_two_region_memory大概是怎么回事 ?
设置堆 0X6000设置栈 0X3000注意 根据启动代码.S 看出heap是8字节对齐的。这个extern __value_in_regs struct __argc_argv__rt_lib_init(unsigned /*heapbase*/, unsigned /*heaptop*/);进行heap分配经测试看起来这个函数本身耗费了一些字节,如下: char *initial_heap; char *initial_heap1; char *init..原创 2020-07-02 09:12:50 · 2866 阅读 · 2 评论 -
移植Mbed TLS
Mbed TLS是咋回事?先不管,先移植再说。官网 https://tls.mbed.org/下载截至今天20200623最新的吧Mbed TLS 2.16.6 and 2.7.15 released然后把里面的.H .c加进去,然后把config.h改一下,如下:...原创 2020-06-23 10:08:39 · 2012 阅读 · 0 评论 -
Cm_Backtrace 移植
main_stack_start_addr = (uint32_t)&CSTACK_BLOCK_START(CMB_CSTACK_BLOCK_NAME); main_stack_size = (uint32_t)&CSTACK_BLOCK_END(CMB_CSTACK_BLOCK_NAME) - main_stack_start_addr; code_start_addr = (uint32_t)&CODE_SECTION_START(CMB_CODE_SE...原创 2020-06-23 09:17:50 · 771 阅读 · 0 评论 -
stm32 fread怎么使用起来的链接收集
【方法】Keil 5下STM32F103VE单片机通过C语言本身的fopen函数打开存储在W25Q128存储器中的文件https://www.keil.com/pack/doc/mw/FileSystem/html/fs_function_reference.html原创 2020-04-22 11:32:18 · 488 阅读 · 0 评论 -
转载[香水城]使用 STM32F427的CCM RAM时遇到的问题,当堆栈结果出问题了?
又搜到香水城的帖子了。具体可以香看到这个水城子吧https://bbs.21ic.com/forum.php?mod=viewthread&tid=1656556使'c用 STM32F42h7的CCM RAM时遇到e的问题前言想写这篇文章的起因是因为有客户在使用CCM RAM的过程中遇到了问题。客户用的是STM32F427芯片,程序将CSTACK放在CCM RAM...转载 2020-02-10 21:14:13 · 1039 阅读 · 1 评论 -
[2]【实例展示】STM32 分析启动代码(把.S 代码 ,工程汇编,以及map文件粘贴在这里)
0x08000000 0408 DCW 0x04080x08000002 2000 DCW 0x20000x08000004 0059 DCW 0x00590x08000006 0800 DCW 0x08000x08000008 00AF DCW 0x00AF0x0800000A 080...原创 2020-02-02 22:19:43 · 1751 阅读 · 0 评论 -
STM32F407的扩展外部内存初始值
2018.11.13把pvmalloc里面的内存用外部内存。函数内部我弄了个标志变量,结果发现初始值不为0.后来发现过在main之后进行初始化外部内存配置,则初始值不为0,如果在main之前配置就是在STM32F4XX_SYSTEM.C里面配置初始值就是0了。事实上我在本博客的前几天写过一篇文章,介绍关于初始值为0这个事情。不过那个是内部的内存,这次呢,是外部的内存。https:/...原创 2018-11-13 14:34:18 · 1566 阅读 · 0 评论 -
fatfs-SDIO的写文件时间耗费在哪里了(之三)?
在《fatfs-SDIO的写文件时间耗费在哪里了(之一)?》我们用了如下的做法来测试f_write()的执行时间: f_open();while(1) { f_write(); }在《fatfs-SDIO的写文件时间耗费在哪里了(之二)?》我们用了如下做法来测试f_open 和f_write和f_close这三个函数加在一起的的执行时间:while(1){ ...原创 2018-10-26 14:50:19 · 1843 阅读 · 0 评论 -
fatfs-SDIO的写文件时间耗费在哪里了(之一)?
分析的是这个驱动,也是网上流传比较多的,如下: * @file fatfs_drv.c * @author MCD Application Team * @version V1.1.0 * @date 31-July-2013 * @brief diskio interface-------------网上安富莱的例子用的是V1.1.2的驱动,也不知...原创 2018-10-26 10:23:16 · 2027 阅读 · 1 评论 -
基于C语言sprintf函数的深入理解
转基于C语言sprintf函数的深入理解2016年07月13日 22:45:08 意念586 阅读数:4805更多个人分类: C语言基础进阶 printf 可能是许多程序员在开始学习C语言时接触到的 第二个函数(我猜第一个是main),说起来,自然是老朋友了,可是,你对这个老朋友了解多吗?你对它的那个孪生兄弟sprintf了解多吗?在将各种类 型的数据构造成字符串时,sprintf...转载 2018-10-22 15:20:37 · 295 阅读 · 0 评论 -
2018年技术规划调整
增加两项:(1)主要完成 bootloader。一个bootloader兼顾RS232/以太网/CAN,在同一个上位机。不弄USB更新程序。上位机下半年要着手开发,边开发边调整,难度未知,但是基本可控。一个bootloader要注重通用性,最好与CPU无关。(2)MQTT为什么要研究MQTT,一个是与以太网相关,会加深对网络的理解,另一个是可能会将控制引入手机端。(3)发表论文一篇,发明专利一篇重...原创 2018-04-28 13:49:00 · 576 阅读 · 0 评论 -
STM32F103 与 STM32F207/407编程的区别自我总结
(0)时钟频率不一样,这个就影响到can之类波特率的配置了。(1)库函数不一样。103与107一样。103与207差别较大。207与407也是不一样的库,但是区别很小。(2)103与207的串口、can的配置 现在都是的加上GPIO_PinAFConfig(3)串口的配置不一样,如usart1/2/3,推挽上啦啥的之类的模式有区别。还有DMA的配置也不一样。207的有steam这个概念原创 2015-11-18 12:17:12 · 15222 阅读 · 3 评论 -
系统安全——软件健壮性【转】
系统安全——软件健壮性 废话系统安全最近一年,飞机失事的事情发生了好多起。于是乎,飞机是否是一种安全的出行工具的讨论又再一次燃起了战火。我无意对该话题展开讨论,只是可以举个例子说明一下。如果A城市一年出了10次抢劫事件,B城市一年出了1次杀人事件。那么可能会有很多人觉得B城市相对更不安全。正是因为飞机失事一般会带来非常严重的后果,所以飞机的设计比其他的交通工具要优秀的多。这里,...转载 2018-11-08 10:37:28 · 952 阅读 · 0 评论 -
函数定位&变量定位链接
转 IAR STM32 函数和变量的绝对地址定位转载 2018-11-20 15:12:53 · 298 阅读 · 0 评论 -
STM32 MPU 链接收集
http://www.stmcu.org.cn/module/forum/thread-612341-1-14.html (GOOD)http://www.51hei.com/bbs/dpj-127956-1.htmlhttp://www.stmcu.org.cn/module/forum/thread-610737-1-1.html(good)ST官方MPU库原创 2019-04-02 08:16:34 · 221 阅读 · 0 评论 -
转 STM32F4(Flash读保护)
/**************************************************************** * Function: Flash_EnableReadProtection * Description: Enable the read protection of user flash area. * Input: * Output:...转载 2019-03-29 14:09:16 · 769 阅读 · 0 评论 -
STM32F4的外部晶振不同带来的改变
这个我话题我以前写过一个文章:STM32F4的system_stm32f4xx.c文件需要根据不同板卡进行修改不过写的不够细致。现在有必要细细写一下:(1)stm32f4xx.h里面的(2)system_stm32f4xx.c外部内存的FSMC也要改(改了肯定OK,不改行不行我不大清楚)(后来试验了,下面这句不改也可以)readWriteTiming.FSM...原创 2019-03-10 12:16:15 · 3842 阅读 · 0 评论 -
[转]JLink重刷固件(win7/win8/win10亲测可用)
https://blog.youkuaiyun.com/lyj19960106/article/details/77944845?locationNum=10&fps=1去年刚刚用上J-link的时候坏过一次,当时在网上也看了很多重刷固件的方法,但绝大多数的都是win7甚至有些需要xp,我当时用的系统是win8.1的,无奈搞了很久都没有刷成功,最后搜到了一个win8.1的解决方法,当时...转载 2019-03-04 13:16:11 · 366 阅读 · 0 评论 -
利用segger的J-flash软件产生测试数据填充flash
测试BOOTLOader需要把没有用到的空间填充数值进行“全地址覆盖测试”,填充什么数值好呢?当然是随机数比较最好,但是比较麻烦,所以偶然发现在J-FLASH界面有个选项:生成了一些自增数据。当然不是最佳方案,凑合用吧。...原创 2019-01-31 10:00:45 · 671 阅读 · 0 评论 -
USB 和USRAT1 有啥关系? 只有初始化USART1才能通过USB取得SD卡的数据,为啥?可能是USART1里面初始化了RCC吧!?
USB 和USRAT1 有啥关系? 只有初始化USART1才能通过USB取得SD卡的数据,为啥?可能是USART1里面初始化了RCC吧!?原创 2018-04-26 15:45:01 · 351 阅读 · 0 评论 -
STM32,软复位,上电复位,看门狗复位对芯片IO状态的影响?
这个问题比较重要。有网友问:大家好,我是做工业控制的,我想问一下STM32如何实现看门狗复位不初始化RAM区,因为是做控制的所以我们想实现CPU热复位后系统能接着原来的流程走,动作开出能不受看门狗复位的影响,即复位前开出的动作,看门狗复位后还是保持开出状态,网上说可以修改启动代码,请问如何实现?谢谢!-------------------------------------原创 2014-11-11 07:11:49 · 16035 阅读 · 3 评论 -
STM32初始化USART后发送了一个0x00?why???
初始化后,用了自创的printf,结果串口助手原创 2014-11-06 08:55:01 · 12715 阅读 · 2 评论 -
STM32自检
看了一个帖子说STM32自检。早就注意到linux 之类 Vxworks之类的 开始上电总要自检一阵子, 看样子这个STM32页可以自检。国际上看样也有标准EIC。。。。 。网上名称叫做STM32 VDE Self Test Library v1.2beta.zip 资料都在这里面原创 2015-11-20 09:43:18 · 3625 阅读 · 2 评论 -
通过RS232和CAN的bootloader能凑合着下载了!!!
搞了些日子,前前后后,断断续续,估计有超过20天,今天终于可以由232转can下载bootloader了。上位机的232打算采用moxa里面有vb,有ymodem。bootloader该注意的问题,我也掌握的差不多了。包括hex格式,flash读写函数在 ram里的定位。还有很多细节问题。估计要弄很久。目前做的工作估摸能占20%。原创 2015-09-07 13:21:29 · 2713 阅读 · 1 评论 -
STM32独立看门狗与窗口看门狗
香水城:如何使用STM32的窗口看门狗菜农:看门狗专栏/*注:stm32f10x_stdperiph_lib_v3.0.0 编译器:MDK3.24A*//* Includes -----------------------------------*/#include "stm32f10x.h"#include "stm32f原创 2015-11-26 14:18:13 · 857 阅读 · 0 评论 -
STM32的I2C的使用要注意啦(用来连接EEPROM,存储数据),关于I2C的busyflag以及与FSMC冲突!
大概几个月前,焊接了几块板子,原创 2014-11-15 23:09:06 · 2214 阅读 · 0 评论