嵌入式
文章平均质量分 67
该专栏收录了有关嵌入式的各类知识
Lotay_天天
某全球前十芯片原厂工程师,擅长嵌入式、多媒体、音视频编解码、芯片、智能家居、物联网和苹果认证领域。
不论起点如何,我时刻在不断进步。
展开
-
【sed学习】sed -i和sed -i -e有什么区别
选项时,请务必小心操作,因为它会直接修改原始文件。建议在进行修改之前备份文件。不太清楚sed -i和sed -i -e有什么区别,学习一下。是用于编辑文件中匹配模式的命令。前言: 项目脚本有句。原创 2024-01-05 15:57:16 · 1518 阅读 · 0 评论 -
【智能家居】
AirPlay是苹果公司推出的一项无线传输技术,可以将音频、视频和照片从苹果设备(如iPhone、iPad、Mac)无线传输到支AirPlay的电视、扬声器或其他设备上播放。HomeKit是苹果公司的智能家居平台,它允许用户通过iPhone、iPad或Apple Watch控制和自动化各种智能家居设备,如灯光、温度调节器、安全系统等。HomeKit提供了一个统一的界面和协议,使得不同品牌的智能家居设备可以相互配合工作。原创 2023-10-23 21:23:35 · 502 阅读 · 0 评论 -
【TA】OP-TEE demo学习
【代码】【TA】OP-TEE demo学习。原创 2023-09-14 17:05:21 · 349 阅读 · 0 评论 -
如何配置 OP-TEE
OP-TEE 是适用于 Arm®v7-A 和 Arm®v8-A 平台的可信执行环境。OP-TEE 由 OP-TEE 架构概述中描述的多个组件组成。OP-TEE 组件生成启动映像和存储在目标中嵌入的文件系统中的文件。OP-TEE OS 生成 3 个启动映像文件,加载到平台启动介质的预定义分区中。生成的启动映像包括 STM32 二进制标头,支持使用经过验证的启动和闪存编程工具。可以构建 OP-TEE 客户端(包 optee_client)来为 OP-TEE 操作系统生成非安全服务。原创 2023-08-28 19:33:28 · 316 阅读 · 0 评论 -
IC芯片 trustzone学习
ARM TrustZone® 技术是一种系统级的安全方法,专为高性能计算平台上的各种应用而设计,包括安全支付、数字版权管理(DRM)、企业服务和基于Web的服务。该技术与Cortex™-A处理器紧密集成,并通过AMBA® AXI总线和特定的TrustZone系统IP块在系统中进行扩展。使用TrustZone技术,可以实现以下优势:安全保护:TrustZone技术允许对安全内存、加密模块、键盘和屏幕等外设进行保护,以确保它们不受到恶意软件攻击。原创 2023-08-23 11:06:46 · 822 阅读 · 0 评论 -
ADB常用命令整理(全网最全)
通常,adb可执行文件位于/platform-tools/目录下,这是Android SDK的安装目录。为了方便使用,我们可以将adb路径添加到系统环境变量path中,例如:D:\sdk\platform-tools;通过adb,我们可以在Eclipse中使用DDMS来调试Android程序,简单来说就是一种调试工具。adb是Android Debug Bridge的缩写,它充当调试桥梁的作用,就像一条连接开发机和设备之间的桥梁。adb是一个C/S模式的程序,由三个部分组成:客户端、服务器和守护进程。原创 2023-08-18 17:56:04 · 1995 阅读 · 3 评论 -
【Perfetto】Perfetto 零基础入门
Perfetto 是一个用于性能检测和跟踪分析的生产级开源堆栈。它提供用于记录系统级和应用程序级跟踪的服务和库、本机 + java 堆分析、使用 SQL 分析跟踪的库以及用于可视化和探索多 GB 跟踪的基于 Web 的 UI。原创 2023-08-17 21:27:06 · 837 阅读 · 0 评论 -
芯片行业FAE岗位
FAE是芯片公司里和客户接触第二多的岗位,单论和客户研发部门的沟通和关系,Sales都难望其项背。因为懂技术并且跟着客户项目调试,FAE可以跟踪客户项目进度Design in,了解客户系统方案和应用信息。为了更好的推广产品,FAE也会对销售和代理商进行产品培训,讲解芯片性能特色和客户应用方案。因此喜欢和客户研发打交道的FAE最后会转为Sales,更偏重技术和市场的则会转为Marketing。原创 2023-06-09 11:26:29 · 4125 阅读 · 0 评论 -
基于瑞芯微芯片RK3399学习
同是soc,参加新星计划学习下大佬的思路的学习通过了解sys目录和文件了解嵌入式设备的系统状况。sysfs把连接在系统上的设备和总线组织成为一个分级的文件,它们可以由用户空间存取,向用户空间导出内核的数据结构Q以及它们的属性。sysfs的一个目的就是展示设备驱动模型中各组件的层次关系。原创 2023-06-06 11:50:19 · 588 阅读 · 0 评论 -
寒武纪2019秋招嵌入式软件开发笔试-牛客网刷题
我答的:Nyquist采样定理指出,对于一个带限信号,为了能够完全恢复其原始信息,采样频率必须大于或等于信号最高频率的两倍。也就是说,如果信号带宽为B,则采样频率Fs至少要大于2B。根据题目中给出的条件,需要分析的信号频率范围为200Hz-10kHz,因此信号带宽为B=10kHz-200Hz=9800Hz。为了满足频谱分辨率不低于40Hz的要求,可以使用512点FFT算法进行频谱分析,每个频率点之间的间隔为Fs/N,其中N为FFT的长度,即N=512。原创 2023-04-27 14:50:20 · 1551 阅读 · 0 评论 -
DUT介绍
SoC:系统级芯片又称片上系统(System on Chip)。SoC是将系统的主要功能综合到一块芯片中,本质上在做一种复杂的ic设计,可以将整个系统集成在一个芯片上。原创 2023-02-14 17:45:47 · 3999 阅读 · 0 评论 -
《SOC芯片研究框架》深度科普,发展趋势、技术特点、产业链一文看懂
片上系统SoC(System on Chip),即在一块芯片上集成一整个信息处理系统,简单来说 SoC芯片是在中央处理器CPU的基础上扩展音视频功能和专用接口的超大规模集成电路,是智能设备的“大脑”。随着半导体工艺的发展,传统MCU已经不能完全满足智能终端的需求,SoC应运而生,凭借其性能强、功耗低、灵活度高的特点,使单芯片能够完成完整的电子系统。SoC在移动计算(例如智能手机和平板电脑)和边缘计算市场中非常普遍。它们也常用于嵌入式系统,如WiFi路由器和物联网。原创 2023-02-10 15:40:48 · 4285 阅读 · 0 评论 -
2022嵌入式工程师面经(2023年1月更新)
收录了一些在牛客网著名企业的面筋原创 2023-01-12 17:31:55 · 4954 阅读 · 6 评论 -
什么是SPI?SPI的优点有哪些?
SPI是串行外设接口(Serial Peripheral Interface)的缩写,是Motorola公司推出的一种同步串行接口技术,是一种高速、全双工、同步的通信总线。原创 2023-01-12 15:47:59 · 1744 阅读 · 0 评论 -
Shell 和 Shell 脚本 (Shell Script)
Shell 是一个用 C 语言编写的程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。业界所说的 Shell 通常都是指 Shell 脚本,但要知道,Shell 和 Shell Script 是两个不同的概念。除了上面的几种,Node.js 本质上也是一种 Shell 脚本,只不过他的语法是 JavaScript。不同 Shell 脚本的区别就是语法不一样。原创 2022-11-14 16:59:59 · 2064 阅读 · 0 评论 -
[本人经历]嵌入式工程师2022校招面试题:cvte+北京朝歌
本人在cvte和北京朝歌面试笔试题汇总原创 2022-11-01 11:10:03 · 624 阅读 · 0 评论 -
MPEG vs JPEG
二者一动一静,各有侧重。注意不要混为一谈即可。原创 2022-10-31 17:36:57 · 941 阅读 · 0 评论 -
Source Insight配置文件
打开工程—>Options—>Load Configuration,然后选中配置文件即可。再次打开工程文件,SI的界面风格变成下面这样了。找到下载的.cf3文件等待软件识别后就会更新配置设置。原创 2022-10-24 17:24:06 · 1393 阅读 · 1 评论 -
【Source Insight】工具入门到精通
工作需要用Source Insight,对于以前习惯用VSC的我有点不适应,特整理出一份较全面的Source Insight教程原创 2022-10-24 16:00:31 · 3370 阅读 · 0 评论 -
crystaldiskmark使用
1、打开CrystalDiskMark硬件检测工具,软件界面非常简单直接,从上到下依次为准备测试的硬盘分区、硬盘的读写速度、硬盘4K文件多线程读写速度、硬盘的连续读写速度和硬盘4K小文件单线程读写速度。CrystalDiskMark(硬盘检测工具),一个测试你的硬盘或者存储设备的小巧工具,简单易于操作的界面让你随时可以测试你的存储设备,测试存储设备大小和测试数字都可以选择,还可测试可读和可写的速度。原创 2022-10-24 11:46:40 · 8031 阅读 · 0 评论 -
微软正常状态和黑屏状态 的进程占用top区别
(2)从字段的意义上来说mem.free表示的是空闲内存总量,但是需要注意的是,虽然buffer/cache会占用一定的物理内存,但是当系统需要内存的时候,这些内存立即释放出来,也就是说buffer/cache可以看成可用内存。一般一个系统而言,如果cache的值很大,说明cache住的文件多。注意:cache的命中率很关键,如果频繁访问的文件不能被命中,对于cache而言是个比较的大的资源浪费,此时应考虑drop cache并提升对应的cache的命中率。典型的用户程序有:数据库、Web 服务器等。原创 2022-10-18 17:56:07 · 383 阅读 · 0 评论 -
CRT改时间
抓log时时间和实时时间不匹配(差5小时),故修改时间。改完后出现一堆log(不管他,ctrl+C退出打印)将当前时间和日期写入BIOS,避免重启后失效。原创 2022-10-18 17:32:46 · 1036 阅读 · 0 评论 -
深入学习tombstone和signal
介绍tombstone,UFS和eMMC原创 2022-09-24 12:26:48 · 622 阅读 · 0 评论 -
数据结构4——linuxC(二叉树和排序算法)
对于二叉树而言,有如下特性:1.第i层上,最多有2^(i-1)个节点。2.高度为k的二叉树,最多有2^k-1个节点。3.假设叶子数目为n0,度为2的节点数目为n2,则有:n0= n2+11.二叉树的插入#include <stdio.h>#include <stdlib.h>#include "drawtree.h"// 二叉树数据节点typedef struct node{ int data; // 数据域 struct node *lchild; /原创 2022-03-02 19:48:28 · 758 阅读 · 0 评论 -
数据结构3——linuxC(栈和队列)
demo1顺序栈#include <stdio.h>#define SEQ_STACK_SIZE 10// 顺序栈数据节点struct seq_stack{ int data;};// 顺序栈下标int g_n;// 入栈(压栈)void stack_push(int new_data, struct seq_stack *s);// 出栈(弹栈)int stack_pop(int *pop_data, struct seq_stack *s);// 显示顺序.原创 2022-03-02 19:41:59 · 2772 阅读 · 0 评论 -
day31-文件属性(2022.3.2)
demo1获取文件属性#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>#include <stdio.h>// ./demo 1.txtint main(int argc, const char **argv){ if(argc != 2) { printf("Input Error!\n"); return -1; } struct stat s.原创 2022-03-02 19:36:04 · 189 阅读 · 0 评论 -
day30-标准IO(2022.3.1)
系统IO:由系统提供,有最基本的操作函数。(简洁、精炼)(类似于菜市场)好处:简洁单一,稳定,不需要消耗过多系统资源。缺点:对于功能性要求较高的程序,更加繁琐。标准IO:由标准C库提供,拥有多样化的操作函数。(功能多样)(类似于饭馆)好处:复杂操作更为方便,函数接口更加多样化。缺点:消耗系统资源更多,不适用于简单功能。——》标准IO,其本质就是调用了系统IO函数,另外定义了缓冲区和添加了一下处理步骤。============== 1.标准IO ============原创 2022-03-02 19:30:01 · 243 阅读 · 0 评论 -
day24-库的使用(2022.2.21)
笔记1.基本概念 ====================在链接阶段,编译器会将不同文件、库中的函数、全局变量进行链接(建立联系)。=============== 2.字体库的使用 ====================libfont— font.h 字体库头文件— libfont.a 字体静态库(2选1即可)— libfont.so 字体动态库使用静态库:直接使用了库的源码函数,最终程序体积较大,运行时不需要依赖。使用动态库:只使用了库的链接,最终程序体积较小,运行时原创 2022-03-01 20:42:16 · 1034 阅读 · 1 评论 -
day28-开发板触屏操作(2022.2.25)
笔记:书本《4.4触控屏应用接口》,了解开发板的触摸屏操作。蜂鸣器、LCD显示屏——》信息输出设备触控屏:(一切皆文件)——》信息输入设备(检测设备)——》测试触摸屏:cat /dev/input/event0 如果出现乱码,出现了原始数据,说明正常,打开open、读取read、关闭close============= 1.触摸屏原始数据解析 ===================输入子系统头文件:/usr/include/linux/input.h输入子系统编码文件:/u原创 2022-03-01 20:28:58 · 2076 阅读 · 0 评论 -
day27-LCD开发板操作(2022.2.24)
================== 1.LCD认识 =====================——》液晶显示屏。3个基本概念:1.像素:图像显示的最小单位,单个像素只能显示1个颜色。三原色RGB:红、绿、蓝颜色分量。(范围:0~255,0000 0000b~1111 1111b,0x00~0xFF,占用8位->1字节)如纯红色: 100%+ 0%+0%纯绿色: 0%+100%+0%纯黄色: 100%+100%+0%纯白色: 100%+100%+100%结论—》在内存中原创 2022-03-01 20:23:36 · 1199 阅读 · 0 评论 -
day26-系统IO(2022.2.23)
空洞文件(hole file)我们知道 lseek()系统调用,使用 lseek 可以修改文件的当前读写位置偏移量,此函数不但可以改变位置偏移量,并且还允许文件偏移量超出文件长度,这是什么意思呢?譬如有一个 test_file,该文件的大小是 4K(也就是 4096 个字节),如果通过 lseek 系统调用将该文件的读写偏移量移动到偏移文件头部 6000 个字节处,大家想一想会怎样?但事实上 lseek 函数确实可以这样操作。接下来使用 write()函数对文件进行写入操作,也就是说此时将是从偏移文原创 2022-02-24 14:05:23 · 276 阅读 · 0 评论 -
数据结构2——linuxC(双向循环链表+内核链表)
一.双向循环链表#include <stdio.h>#include <stdlib.h>// 双向循环链表数据节点typedef struct node{ int data; // 数据域 struct node *prev, *next; // 指针域(2个指针,前后指针)}node;// 添加新数据(头插法)void link_list_add(int new_data, node *head);// 添加新数据(尾插法)void link_list原创 2022-02-17 08:51:06 · 799 阅读 · 0 评论 -
数据结构1——linuxC(顺序表+单向链表)
一。顺序表#include <stdio.h>#define SEQ_SIZE 10// 声明数据节点struct seq_node{ int data;};// 遍历显示顺序表所有有效数据void seq_show(struct seq_node *seq_list);// 将该正数存放到顺序表中void seq_add(int new_data, struct seq_node *seq_list);// 将该数从顺序表中删除void seq_del(int原创 2022-02-16 20:15:14 · 351 阅读 · 0 评论 -
day13嵌入式-数据结构(2022.1.21)
顺序表:设计数据节点(一般使用结构体)// 声明数据节点struct seq_node{ int data;};初始化顺序表(栈空间、堆空间都可以) // 1. 初始化顺序表(选用栈空间,结构体数组) struct seq_node seq_list[SEQ_SIZE] = {0}; // 如果使用堆空间(实际使用与栈空间的数组是一模一样的!) // struct seq_node *seq_list = calloc...原创 2022-01-21 20:12:59 · 539 阅读 · 2 评论 -
day12嵌入式(2022.1.18)
练习:参考proj1文件夹,创建一个自己的工程,放入4个文件:main.c 放入main主函数square.c 放入计算平方、立方函数。sum.c 放入加减乘除的4个函数head.h 工程头文件在main函数中都使用子函数,计算一下。多文件(工程)编译常见问题:隐式声明:没有声明该函数。解决方式:在工程头文件head.h中,添加该函数的声明。gcc链接器未发现函数(未定义函数)(全局变量同理)解决方式:寻找所有编译的.c文件中是否存在...原创 2022-01-19 20:28:53 · 338 阅读 · 0 评论 -
day11嵌入式(2022.1.17)
浏览书本《1.4 编译器 GCC》问题:gcc编译器有什么用?将代码文本编译为机器能识别的二进制指令。从代码最终得到程序,经过了哪4个步骤?预处理、编译、汇编、链接经过哪个步骤之后,代码不能直接阅读了?汇编。对于代码的语法检查(提示错误行号)属于在哪个步骤进行?编译。为什么代码漏写函数,gcc编译时不提示出现错误的行号?因为函数链接定位在链接的阶段,而不是在编译阶段。==================1.gcc编译流程===================...原创 2022-01-19 20:25:14 · 322 阅读 · 0 评论 -
day10嵌入式(2022.1.16)
数组三要素:连续内存、具体长度、相同类型。====================== 1.结构体 ==============================含义:一整块连续的内存,其中包含任意不同的数据类型。(面向对象语言C++/C#/Java/Python中,有一种类似概念:类Class)如何使用?// 构造一个结构体模板(声明一种结构体类型)struct student{ char name[32]; //成员1:char [32]类型的...原创 2022-01-19 20:08:27 · 395 阅读 · 0 评论 -
day9嵌入式(2022.1.15)
===================== 1.程序文件分析 ==========================ELF:Linux系统下,可执行程序文件。(可重定位文件)(类似于Windows中的exe)程序文件中,需要特别关注的文件段:备注: file 指令,查看系统中某个文件类型。file 文件名readelf指令,列举程序文件中文件段。readelf -S 程序名===================== 2.进程内存布局 =...原创 2022-01-19 20:03:39 · 401 阅读 · 0 评论 -
day8嵌入式(2022.1.14)
================ 1.指针实际应用4:多级指针的使用 ==============如果需要修改指针本身的指向,那么在函数传参时,必须使用地址传递。相关代码参考demo1_二级指针的应用.c================ 2.指针实际应用5:空指针、野指针介绍 ==============空指针:指向NULL地址(0x00000000)的指针。(该块内存为不可访问区,如强行访问将导致段错误。)Segmentation fault (core...原创 2022-01-19 19:49:49 · 875 阅读 · 0 评论 -
day7嵌入式(2022.1.13)
数组指针,指针数组#include<stdio.h>int main(){ int a = 100; int *p1 = &a; // 整型指针 char ch = 'A'; char *p2 = &ch; // 字符型指针 int arr[5] = {1, 3, 5, 7, 9}; int *p3 = arr; // 整型指针,指向整型1 int (*p4)[5] = &arr; // arr整个数组的地址 // 数组指针 in原创 2022-01-13 20:26:39 · 356 阅读 · 0 评论