嵌入式
文章平均质量分 78
爱吃瓜的猹z
没有技术就没有尊严
展开
-
Protobuf 的工作原理
填充字节:在protobuf的序列化过程中,填充字节不会被考虑,因为protobuf以紧凑的二进制格式存储数据,按字段编码实际数据。传输效率:使用protobuf可以减少传输数据的开销,因为它使用了紧凑的编码格式,并且不会传输填充字节。网络传输:通过protobuf序列化的数据流是经过压缩和优化的,不会包括结构体内存对齐相关的填充字节。因此,protobuf能够有效地减小数据的传输压力,并且不受结构体内存对齐操作的影响。原创 2024-09-21 15:40:45 · 500 阅读 · 0 评论 -
新手第一次跑大模型
如果你有GPU,可以利用其加速模型的推理。库,下载并运行一个简单的大模型,比如GPT或BERT。确保你有足够的内存和磁盘空间,大模型(如GPT-2或更大的模型)可能需要较大的内存和磁盘。这将下载GPT-2模型(第一次运行时)并生成一个包含50个标记的文本。如果你的模型较大或者需要并行处理数据,还可以考虑使用分布式训练库如。首先确保你已经安装了Python及其相关依赖库,比如。预训练模型下载后会被缓存,下次运行时不需要重新下载。运行这段代码时,模型会利用GPU来加速推理。,以便安装深度学习框架。原创 2024-09-21 15:26:40 · 1142 阅读 · 0 评论 -
字节序的简单介绍
大端字节序和小端字节序定义了数据在内存中的存储顺序。转换涉及将数据字节的顺序反转。Python和C提供了方法来实现字节序转换,利用简单的字节操作或内置函数。sizeof可以正确地获取结构体在内存中的实际大小,包括填充字节和对齐要求。字节序转换需要针对每个数据成员进行处理。直接对整个结构体进行字节序转换可能会导致问题,因为成员之间的对齐和填充可能会干扰转换的正确性。对于复杂的结构体,特别是包含浮点数和位域的情况,确保理解各成员的字节顺序和对齐要求,并逐个进行字节序转换。逐个处理成员。原创 2024-09-21 15:21:35 · 883 阅读 · 0 评论 -
vGlite的简单介绍
vGlite 是一个嵌入式系统的图形加速引擎,主要用于 2D 图形处理,而不属于传统的 GPU 范畴,但它确实能提供图形处理能力,特别是在低功耗和资源受限的环境中。GUI 绘制和显示流程分为布局与排版、绘制、合成、显示四个主要步骤。vGlite主要加速2D 绘制和图层合成,这些是嵌入式系统中 GUI 性能的关键部分。它通过硬件加速帮助实现更高效的图形渲染和界面响应速度。原创 2024-09-15 08:05:29 · 1230 阅读 · 0 评论 -
AG3335芯片介绍
表示一种能够同时接收来自多个卫星导航系统信号的接收器,它通过结合多个星座的卫星信号,实现更精确、可靠的全球定位服务,特别适用于对定位精度要求较高的场景。表示该 GNSS 接收器支持多种基于卫星的增强系统(SBAS),包括不同地区的具体服务(如北美的 WAAS、欧洲的 EGNOS、日本的 MSAS、印度的 GAGAN)。这些系统通过提供修正后的卫星信号,大幅提升定位的精度和可靠性,特别适合需要高精度导航的应用场景。确保在 SBAS 覆盖区域内。通过设备配置或命令启用 SBAS。原创 2024-09-15 07:58:16 · 1124 阅读 · 0 评论 -
IP core 在硬件上实现的流程
一旦 IP 核被集成到一个芯片设计中,它通常不能作为一个独立的模块被拆除和转移到其他系统中。IP 核的集成涉及到电路设计、接口通信、授权协议等多个方面的复杂因素,导致其不能简单地从一个系统中拆卸并在另一个系统中重新使用。IP 核最终会在硬件上实现,通过集成到芯片(SoC、MCU、ASIC)中,成为硬件的一部分。芯片制造商将授权的 IP 核与其他设计模块集成,并经过验证和生产,最终应用于各种电子设备中。原创 2024-09-14 05:57:23 · 1259 阅读 · 0 评论 -
嵌入式C/C++代码的运算符优化
编译器通常会针对常见的运算进行优化,减少生成的机器指令数量。位运算符()通常直接映射为机器指令,效率很高。移位操作可能替代乘法和除法,特别是当乘数或除数是2的幂时。自增和自减运算符 (++--) 通常会生成更少的指令,尤其是前置版本。条件运算符?可能比if-else更高效,减少分支跳转。编译器的优化能力因具体硬件架构和编译器选项(如优化级别-O2-O3)而异。通过启用优化,编译器可以在不改变程序行为的前提下进一步减少指令数量。原创 2024-09-07 19:21:18 · 1052 阅读 · 0 评论 -
C语言学习-多用typedef代表复杂结构
在看Linux 进线程编程时顺便学习信号量,结果看到这个的时候懵了一下:这里我开始以为将 void 起了个别名叫 (*sighandler_t)(int),看了大神davidsky11的 文章恍然大悟, 它定义了一个类型sighandler_t,表示指向返回值为void型(参数为int型)的函数(的)指针。它可以用来声明一个或多个函数指针。 sighandler_t sig1, sig2; 这个声明等价于下面这种晦涩难懂的写法: void (*sig1).原创 2020-09-16 00:21:25 · 159 阅读 · 0 评论 -
Linux驱动学习----名词解释【To be continue】
用户空间User space is system memory allocated to running applications。uImage 和 zImage 的区别 After the kernel compiles (make), it will generate two files, an Image, a zImage, where Image is the kernel image file, and zImage is an image comp原创 2020-07-03 01:51:41 · 242 阅读 · 0 评论 -
Linux驱动学习-总线设备驱动模型-LED例程理解
最上层 leddrv.c注册了 file_operations 结构体:将泛化对设备的操作抽象成 file_operations 结构体的四个元素;入口函数:注册file_operations结构体,创建 led_class 以调用 device_create 函数出口函数:移除 led_class 类,注销 file_operations 结构体修饰出入口函数,GPL协议声明第二层 单板1.定义引脚资源 resource;2.建立 platform_device 结构体 &nbs原创 2020-07-02 17:48:22 · 167 阅读 · 0 评论 -
Liunx驱动学习【1】---hello_drv
作者:黄兢成链接:https://www.zhihu.com/question/27656256/answer/943130123来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。句柄的英文是 handle。在英文中,有操作、处理、控制之类的意义。作为一个名词时,是指某个中间媒介,通过这个中间媒介可控制、操作某样东西。这样说有点抽象,举个例子。door handle 是指门把手,通过门把手可以去控制门,但 door handle 并非 door 本身,只是一个中间媒介。原创 2020-06-22 22:08:05 · 289 阅读 · 0 评论