
嵌入式
此处的彼声
这个作者很懒,什么都没留下…
展开
-
S32K144带bootload的运行过程
S32K144带bootload的运行过程原创 2023-01-04 15:19:57 · 1836 阅读 · 0 评论 -
关于cortex m3/4跳转到的函数地址需要加1的问题
关于cortex m3/4跳转到的函数地址需要加1的问题转载 2022-09-08 16:58:43 · 794 阅读 · 0 评论 -
关于mcu进入DefaultISR的问题
mcu的DefaultISR问题原创 2022-08-15 16:14:13 · 1993 阅读 · 0 评论 -
gnu make如何找默认target
make只会执行第一个出现的规则,规则中有多个目标时,只执行第一个目标。有两个例外:1.以句号开头的target会被忽略2.模板规则会被忽略如下,前两个规则不会被认为是默认规则:BINODIR=a.c: $(BINODIR).c echo "111111111111"%.o: $(BINODIR).c echo "22222222222"a.out:a.c gcc a.c -o a.out至于模板规则可以理解成就是target中带%的:...原创 2020-09-10 15:06:26 · 727 阅读 · 1 评论 -
win10 作为tcp服务器时局域网内其他设备无法连接的问题
需要在防火墙添加新的入站规则:win+x --> 设置 --> 更新和安全 --> windows安全中心 --> 防火墙和网络保护 --> 高级设置右键入站规则 --> 新建规则 按照自己的需要进行选择。另外遇到过发送数据接收不到的一种情况是连接路由器的设备太多,所以遇到数据接收不到的情况时,最好建立手机热点尝试。...原创 2020-09-03 12:45:20 · 2795 阅读 · 0 评论 -
WAP PSK加密中的PSK密码并不是wifi密码
在IEEE802.11i中有定义,PSK密码是256位,也就是64位的16进制数。对于用户很难输入,所以用了一层计算关系,而且定义了用户输入的密码长度需要在8-63之间,如下:原创 2020-08-13 09:28:54 · 4220 阅读 · 0 评论 -
关于C的回调函数
#include "stdio.h"typedef void (*pfun)(int a);struct t{ int a; int b;};void bfun(struct t a, int c){ printf("===bfun %d %d %d\n", a.a, a.b, c);}void cfun(pfun f, int a){ f(a);}void main(){ cfun(bfun, 1);}运行结果如下:tes.原创 2020-07-10 15:44:46 · 380 阅读 · 1 评论 -
关于float
float可以表示成:Sign(1位):用来表示浮点数是正数还是负数,0表示正数,1表示负数。Exponentc(8位):指数部分。即上文提到数字c,但是这里不是直接存储c,为了同时表示正负指数以及他们的大小顺序,这里实际存储的是c+127。Mantissab(23位):尾数部分。也就是上文中提到的数字b。举个例子就明白了:所以, c = 3 + 127二进制存储:0|1000 0010|10000100000000000000000浮点数的表示范围是:[-3.4028...原创 2020-05-25 14:11:16 · 712 阅读 · 0 评论 -
bss段等代码字段以及ram空间使用情况
bss是英文Block Started by Symbol的简称,通常是指用来存放程序中未初始化的全局变量的一块内存区域,在程序载入时由内核清0。BSS段属于静态内存分配。它的初始值也是由用户自己定义的连接定位文件所确定,用户应该将它定义在可读写的RAM区内,源程序中使用malloc分配的内存就是这一块,它不是根据data大小确定,主要由程序中同时分配内存最大值所确定,不过如果超出了范围,也就是分配失败,可以等空间释放之后再分配。text段是程序代码段,在AT91库中是表示程序段的大小,它是由编译器在编译连原创 2020-05-11 11:16:01 · 1984 阅读 · 0 评论 -
c语言实现字符串与十六进制数的互转
#include <ctype.h>#include <stdio.h>#include <stdint.h>void strToHex(uint8_t *pbDest, const char *pbSrc, int nLen){ uint8_t s1,s2; int i = 0; if(nLen % 2){ s1 = touppe...原创 2020-04-28 09:14:08 · 797 阅读 · 0 评论 -
写函数的三步走策略
前提先想明白函数要实现的功能,尽量实现成通用灵活的函数,尽可能不受需求约束。1.根据函数要调的接口,确定需要的变量,定义变量2.计算变量的值3.调接口...原创 2019-12-26 14:00:23 · 245 阅读 · 0 评论 -
CRC校验算法
发现网上好多人把CRC8的校验算法搞错了,尤其是查表法,把多项式和表的对应关系搞错了,虽然对校验功能没有影响,但是明显是没有理解CRC8的算法过程。当要校验字节为1时,table[1]肯定应该就是校验多项式,网上好多把下面的表对应到x^8+x^5+x^4+x^0的,其实应该是x8+x6+x4+x3+x2+x1static const unsigned int crc8Table[256] ...原创 2019-12-11 17:15:29 · 783 阅读 · 1 评论 -
你所不知道或不熟悉的C语言知识
##是把两个宏参数连接的运算符,#define NAME(y) name_y 则宏NAME(1)展开时仍为name_y#define NAME(y) name_##y 则宏NAME(1)展开为name_1=========================================volatile指定的关键字可能被系统、硬件、进程/线程改变,强制编译器每次从内存中取得该变量的值...原创 2019-08-22 19:42:01 · 427 阅读 · 0 评论