1.均值滤波算法
2.DMA双缓冲区(ping-pong buffer)
3.DAM环形缓冲区(circle buffer)
4.二进制位序列技术(位域结构体)
5.查表算法
6.对上传参数进行加密和解密操作
7.编码器旋转方向判断及防抖处理
8.归一化计算&流程控制算法
设备启动前,根据设置的频率、刺激时间、间歇时间和总时间不同,对治疗过程的归一化计算;设备工作过程中,根据磁疗参数不同,实现对定时器切换以及满足技术要求的时间控制;使设备输出正确磁场的电容充放电流程控制算法。
技术点
1.操作系统里还有个内存屏障
内存屏障(memory barrier),也称为内存栅栏或同步屏障,是操作系统和硬件层面的关键同步机制,用于控制内存操作的执行顺序,解决多核/多线程环境下由处理器乱序执行和编译器优化导致的内存访问一致性的问题。
// 示例:无屏障时的危险重排
Core A:
data = 42; // (1) 写数据
flag = true; // (2) 写标志位 → 编译器/CPU可能将(2)重排到(1)前!
Core B:
while (!flag); // (3) 等待标志位
read_data = data; // (4) 读数据 → 可能读到旧值!
2.二值信号量和锁
二值信号量通常比锁(如互斥锁)占用更少的系统资源。
原因在于互斥锁需要额外的优先级继承机制来避免优先级反转问题(例如调整任务优先级),这会增加内存和处理开销;而二值信号量仅通过简单的计数器(0或1)实现同步功能,无需复杂逻辑,因此资源消耗更低。
而且锁是归线程所有,a线程获取锁,则必须由a线程释放锁,中断中不能对锁进行操作,因为中断不属于任何一个线程,切到中断的时候不会改变当前线程的状态。
3.flash和eeprom的区别
两个都是常用的非易失性寄存器(断电后数据不丢失)
第一,flash擦除单位是块(几十KB),而eeprom可以字节级操作;第二,eeprom寿命通常10万次,flash可达百万次;第三,成本上flash更有优势。
️ 性能与操作效率
EEPROM擦写速度慢:毫秒级
Flash擦写速度快:微秒级
总结:EEPROM 适合频繁修改的小数据存储 (如配置参数),Flash 则以大容量和低成本胜出,适合固件、媒体等静态数据存储。
4.看进hardfault的时候sp,lr,pc指针在哪,看堆栈调用
5.C语言的面向对象

c语言面向对象思想最关键的一个是结构体,一个是 函数传入第一个参数时结构体指针。
这样就实现了高级语言里面的this.,高级语言默认都是传入自己的指针的。
看这里的obj.setValue(42); 用c语言实现就是 setValue(MyClass* obj, int val); 实例化MyClass obj之后调用的是setValue(&obj, 42);
然后为了函数便于理解,setValue函数我们命名为MyClass_setValue,知道是给MyClass这种对象使用的函数。
这样就实现了c语言的面向对象。
这里主要想说的是面向对象编程中的封装和抽象概念
4208

被折叠的 条评论
为什么被折叠?



