- 博客(36)
- 收藏
- 关注
转载 设备树笔记
除了传统的 command line以及tag list之类的,最重要的是申请一个machine type,当拿到属于自己项目的machine type ID的时候,当时心情雀跃,似乎自己已经是开源社区的一份子了(其实当时是有意愿,或者说有目标是想将大家的代码并入到linux kernel main line的)。2、在内核的arch/arm目录下建立mach-xxx目录,这个目录下,放入该SOC的相关代码,例如中断 controller的代码,时间相关的代 码,内存映射,睡眠相关的代码等等。
2024-10-05 21:48:04
398
原创 代码规范总结
2、防腐层应当捕获所有异常,并做好强弱依赖,强依赖将外部问题转换为内部一场并向上抛出,若依赖则打印日志正常返回,避免若依赖阻塞核心流程。2、日志打印做好分类,对于正常流程打印info,对于业务流程校验出错的打印warn,对于业务流程严重出错的或系统异常的打印error。1、应当设置一层防腐层来调用外部的接口,防腐层完成模型转换,异常处理等工作,将外部系统的差异与异常全部隔离在防腐层。不应当出现魔法数,对于数值型且用于标明业务含义的,应当有对应的枚举,且不应当用默认值来表达业务含义。
2024-07-31 11:08:44
397
原创 嵌入式常见缩写
RCC,Reset and Clock Control,意思是复位和时钟控制器,它负责单片机的复位以及时钟的配置。configuration 可缩写为 cfg。synchronize 可缩写为 sync。parameter 可缩写为 para。statistic 可缩写为 stat。increment 可缩写为 inc。argument 可缩写为 arg。register 可缩写为 reg。buffer 可缩写为 buff。maximum 可缩写为 max。message 可缩写为 msg。
2024-06-13 14:26:03
374
转载 ext2文件系统如何计算最大磁盘容量和最大单一文件容量
3.ext2文件系统为了让inode记录尽可能多的data block,定义了四个记录block号码的区域,分别为12个直接记录区,一个间接记录区,一个双间接记录区,一个三间接记录区,所谓间接记录区就是用data block记录data block号码,data block:实际记录文件的内容,若文件太大时,会占用多个block,在ext2文件系统中所支持的data block大小有1KB,2KB,4KB三种。一个直接记录区记录一个data block号码,一个data block 1K。
2024-04-23 14:26:07
203
1
转载 8位有符号类型的数最小值为什么是-128
那如果换成补码,1的原码,反码,补码均为0000 0001(正数三者一致);假设32位机器,X为负数(最高位是符号位,对于负数,即为1),则有X(绝对值)+X(反)=0xFFFFFFFFF,因此X(绝对值)+X(反)+1=0xFFFFFFFFF+1=0;所以得到0-X(绝对值)=X(反)+1,根据之前的定义X(反)+1即为X的补码,于是有X(补)=X(反)+1=0-X(绝对值);得到-X(绝对值)=-0-(-X(补))=0-(X(补(绝对值)))=X(补)(反)+1;2)X(绝对值)=0-X(补);
2023-10-11 11:09:49
1390
1
原创 C代码中集成gtest单元测试
3、写一个单元测试文件(如:foo_unitttest.cc), 编译链接上 libgtest.a 和 libfoo.a 生成可执行文件进行测试。2、写一个单元测试文件(如:foo_unitttest.cc),和待测试代码一起编译并链接到 libgtest.a 库得到可执行文件进行测试。1、编译测试框架 googletest 源码得到 libgtest.a 库文件(也可以根据需要编译成动态链接库或共享库文件.so)2、编译待测试的 C 代码得到一个功能库文件,例如 libfoo.a。
2023-06-13 21:31:46
1019
转载 RTOS的实时性如何理解
一般来说,挂到中断ISR上的函数,都是运行在中断上下文里的,但这个handler执行期间会关中断,如果handler代码太长,那么关中断的时间就会太长,所以实时系统会提供task级别的ISR handler,进一步保证系统能足够快的响应中断。实时系统不一定快,相反的,实时系统的效率往往不高,如果系统中存在着周期性的高优先级任务,往往会导致实时系统的低优先级任务被周期性的打断,造成整个系统吞吐量下降(比如机械硬盘访问,高低任务交叉执行会导致磁头反复移动,效率降低)。核心的调度代码,仅仅是汇编编写的几十行。
2023-05-23 16:33:41
1173
原创 神经网络量化与反量化
类似地,我们经常将网络输出的范围在 0.0~1.0 之间的张量调整成数值为 0~255、uint8 类型的图片数据,这个过程就是量化。需要强调的一点是,定点整数的 zero point 就代表浮点实数的 0,二者之间的换算不存在精度损失,这一点可以从公式 (2) 中看出来,把 r=0代入后就可以得到 q=Z。量化后的结果为对应为-128,127 ,反量化后的结果与没量化的初始结果发现精度有略微的损失,但是效率 可以提高四倍。这篇文章中会用到一些公式,这里我们用 r 表示浮点实数,q 表示量化后的定点整数。
2023-04-28 16:23:01
2149
原创 计算机浮点数偏移量为何是127
以 8 位数为例,总共能表示 256 个数,把这些数加上一个固定的值,从而形成新的码值(还是 8 位),这就是移码的定义。例如,可以把有符号数映射到 0 - 255 的段上。因此使用 -126 - 127 的范围,也即 -127 - 128 的范围。移码的优势:原来的大小关系不变,且一一对应(没有两种表示的 0),很容易判断大小(如判断是最小值或者最大值)。使用 127 的偏移值,只是因为需要使用 -127 - 128 的值范围,此时浮点数的表示范围更为均衡而已。-128 - 0 - 127 (真值)
2023-04-28 16:02:07
2673
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人