- 博客(54)
- 收藏
- 关注
原创 电机的机械特性曲线
当电机工作在额定转速和额定转矩点时,当需要的负载转矩增加时电机的转速下降。当需要的负载转矩减小时,转速增加。物理意义:电机输出转矩T和转速n的关系:T=f(n)在最大输出转矩Tk时。
2025-01-14 10:50:37
655
原创 函数调用与HardDefault异常处理定位
函数调用与HardDefault异常处理定位R13(SP:stack pointer):栈顶指针,R14(LR:Link Register):保存要执行的下一条要执行指令的地址,一般用于函数调用和异常处理。R15(PC:Program Counter):保存当前程序运行到的地址。当程序调试时出现错误时会进入harddefault中断回调函数中。此时链接寄存器LR中的值可能就是harddefault的地址,无法正确判断出错的位置。 此时需要通过堆栈指针SP来追踪错误的位置。一般是从栈顶开始往
2024-09-09 09:59:13
312
原创 LWIP相关知识
4、 LwIP时基:LwIP也是一个内核,与操作系统一样,也是由时基驱动的,LwIP作者为了能让内核正常运行,也引入了一个时钟来驱动,这样子可以处理内核中各种定时事件,如ARP定时、TCP定时等。3、移植网卡驱动:ethernetif.c文件就是存放这些底层驱动函数的,LwIP的contrib包中就包含这个文件的模板,我们需要在这个基础上修改。5、协议栈初始化:想要使用LwIP,那就必须先将协议栈初始化,我们就创建一个函数,在函数中初始化协议栈,注册网卡,设置主机的IP地址、子网掩码、网关地址等。
2024-08-24 12:52:59
506
原创 KeilMDK制作FlashDriver
①在ECU OTA 程序升级过程中,需要执行一段比较特殊的代码,这段代码实现对自身flash的擦除与写入,又称flash driver;②为了安全的考虑,会尽可能的避免在代码中固化有对flash空间进行擦除或写入的操作,主要为了避免在程序跑飞时误调用该部分代码,使软件代码部分受到破坏;③在OTA开始后,会先传入flash driver到RAM中,再开始刷写APP。
2024-08-10 12:36:28
1394
1
原创 嵌入式软件中状态机的几种操作
现态:是指当前所处的状态。条件:又称为“事件”,当一个条件被满足,将会触发一个动作,或者执行一次状态的迁移。动作:条件满足后执行的动作。动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。动作不是必需的,当条件满足后,也可以不执行任何动作,直接迁移到新状态。次态:条件满足后要迁往的新状态。“次态”是相对于“现态”而言的,“次态”一旦被激活,就转变成新的“现态”了。
2024-08-09 22:18:20
464
原创 程序从编译到被执行的流程
5、添加行号和文件标示,这样才能在调试和编译出错的时候知道是那个文件的哪一行。1、删除所有的#define,并展开所有的宏定义,说白了就是字符替换。2、处理所有的条件编译,#ifdef #ifndef #endif,3、处理#include 将其指向的文件差插入到该行。6、保留#pragma编译器指令,因为编译器需要使用。1、预处理:有出c文件到i文件。4、连接:有o文件到exe文件。4、优化后生成相应的汇编代码。2、编译:由i文件到s文件。3、汇编:由s文件到o文件。
2024-06-29 20:28:04
334
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人