自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Eric.Xi

共同学习,共同进步!

  • 博客(60)
  • 资源 (22)
  • 问答 (1)
  • 收藏
  • 关注

原创 算能端侧芯片选型

2024-04-13 08:40:12 82

原创 飞腾芯片系列

2024-04-09 19:52:40 79

原创 芯片选型-瑞芯微RK3568替换方案

2160p60 视频解码 (H265, H264, VP9, VP8, AV1, MPEG-2)深蕾(https://www.senarytech.com/product/18.html)LPDDR4/LPDDR4x,默认2GB/4GB(最高支持8GB)支持 4K 30fps H.265/H.264/VP9 视频解码。4 核Cortex-A55 ,主频最高达 1.9GHz。单 1080p60 视频编码,支持 H.264 格式。三屏异显,可支持2xHD+SD分辨率显示。最高 1.0+ Tops。

2024-04-06 17:22:54 429

原创 嵌入式自动化测试软件平台-OpenHTF

OpenHTF

2024-03-27 21:12:27 276

原创 WIFI直连(Wi-Fi P2P)

Wifi peer-to-peer(也称Wifi-Direct)是Wifi联盟推出的一项基于原来WIfi技术的可以让设备与设备间直接连接的技术,使用户不需要借助局域网或者AP(Access Point)就可以进行一对一或一对多通信。这种技术的应用场景非常多,只要设备支持WiFiP2P的协议,就可以实现传文件,屏幕共享(Miracast),甚至是联机玩游戏,而周围没有任何可以上网的设备。

2023-12-10 22:25:19 1521

原创 【001】OpenHarmony3.2 设备发现-设备管理结构体DeviceInfo分析

3.2 DataBitMap结构体。二、DeviceInfo字段介绍。一、DeviceInfo介绍。3.1 devType类别。

2023-05-05 19:50:14 988 3

原创 【无标题】rk3588编译问题

#UsageinputArguments-1-9-d-z-f-h/-H31make[2]make[2]***正在删除文件“arch/arm64/boot/Image.lz4”170make[1]make[1]***正在等待未完成的任务....214makeERRORERROR。

2022-07-29 17:03:08 3218 2

原创 edegeXFoundry 2.0 搭建教程

简介irland版本edgex foundry 主要分为1.x版本和2.x版本。版本接口和架构差异较大步骤1.edgex-go仓库地址:GitHub - edgexfoundry/edgex-go: EdgeX Golang Services Monorepo | Owner: Core/Support WG编译:make build执行后会在cmd目录下生成对应的可执行程序。bin目录从2.0版本以后没有服务启动脚本edgex-launch.sh,可以把早

2021-12-16 19:23:16 770

原创 openharmnony os 南向移植过程中遇到的问题

1.selinux添加2.init: Unable to write to /sys/fs/selinux/checkreqprot: open() failed: Permission deniedcmdline 添加androidboot.selinux=permissiveKernel command line: consoleblank=0 console=ttymxc0,115200n8 root=/dev/mmcblk0p3 init=/init androidboot...

2021-07-16 15:12:40 248

原创 鸿蒙系统在Hi3816平台上初体验

前言鸿蒙系统最近在网上很热,系统有很多优点,其中分布式系统吸引了我。公司用到的产品有stm32的单片机、NXP的IMX系列和海思的Hi3536 系列产品。如果能都跑起来鸿蒙系统的话,在上层应用架构上会方便很多。鸿蒙官网地址:https://device.harmonyos.com/cn/home鸿蒙源码仓库地址(doc里面也有相应的文档说明,我发现比官网的更新快):https://gitee.com/openharmony发布会上华为说过,鸿蒙可以跑在大多数芯片上。...

2021-02-06 11:33:04 1704

原创 海思3536 nand 扩容操作教程

海思3536开发板默认是256M的nand,在实际的产品中容量远远不能满足需求。根据上层软件的需要,扩容到1G的存储空间。想要系统正常运行,需要以下操作:1.修改Hitool的分区表海思3536 使用Linux双系统:主系统和从系统。主系统主要控制4个A17核心。从系统主要控制A7和多媒体单元。我使用的事主系统来引导 从系统。把所有的应用程序放到了mashter_fs中。修改nand之前住文件系统只有235M硬件扩容到1G后,增加主文件系统到900M2.修改uboo...

2021-01-22 14:18:52 3039

原创 Linux 网络驱动 phy 读写寄存器调试方法

Linux 网络 phy 调试方法目前嵌入式芯片支持双网卡的有很多。在调试网络驱动时,需要通过mdc 和mdio信号对phy的寄存器进行操作调试。如果每次调试都修改网络驱动的话会很麻烦。下面提供我常用的网络驱动调试方法在驱动层,设备树绑定mac与mdio总线的关系。在Linux应用层,编写测试程序mdio 。代码如下:如果是写寄存器操作,就传入四个参数./mdio ethX phyId addr value.。ethX 表示是哪个网卡,如eth0 eth1 。phyId是 ...

2021-01-21 16:23:50 4852 1

原创 RK3399 watch dog

内核选中红框部分,确保有/dev/watchdog#include <errno.h>#include <fcntl.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include "stdio.h"#include <unistd.h&g...

2019-09-04 17:01:31 1791

原创 RK3399 Android7.1系统 自定义号码CMEI信息写入vendor_storage

https://blog.csdn.net/kris_fei/article/details/79580845以上朋友写了基本概念,我们讨论下具体使用存储SN, MAC, LAN,BT等data,主要特性是不会丢失以及系统启动各个阶段都可以访问,包括uboot, kernel, linux用户空间以及pc端通过调用vendor_storage_write_sn()函数将CMEI信...

2019-07-12 16:02:07 5858 1

原创 RK3399 Android7.1系统APP有问题时弹出 没有响应 关系应用 等待

一、问题描述android系统运行不正常的时候会弹出以下框框,需要手动选择。如果想取消弹框,直接关机运行不正常的应用,后台我们自己做守护程序。方法如下本质是ANR对话框 是类class AppNotRespondingDialog在处理二、问题定位点位弹框类在以下路径base/services/core/java/com/android/server/am/App...

2019-07-09 11:22:29 1121

原创 使用mkfs.ext4工具制作 ext4 镜像

// create   ext4 filemkdir systemmkdir oemdd if=/dev/zero of=oem.ext4 bs=1M count=32mkfs.ext4 oem.ext4sudo mkdir tmpfssudo mount -t ext4 oem.ext4 ../system/ -o loopcp your file or app  to .....

2018-12-29 11:11:56 3095

原创 uboot 中的spl 简单认识

SPLARM SoC的启动过程:RomBoot --> SPL --> u-boot --> Linux kernel --> file system --> start application(RomBoot是固化在SoC内部的。)spl的产生:因为芯片厂商固化的ROM支持从nandflash, SDCARD等外部介质启动,所以RomBoo...

2018-10-10 10:14:54 7436

原创 secureCRT 日志保存并记录每条记录的时间

对于嵌入式工程师来说,和设备交互是工作中必不可少的事。在同事中串口工具一般都是使用secureCRT 和Xshel ,具体那个好在此不做讨论。我觉得都很好,看个人喜好。对于嵌入式系统工程师来说,系统的启动时间是个重要指标。因此能够准确测量系统每个模块所用时间尤其重要。下面介绍一下在使用secureCRT过程中一个很好用的技巧,保存每条记录并打印记录的时间先

2017-06-22 13:30:18 24944 1

原创 Linux 内核中的并发--信号量与互斥体

信号量(down操作->临界区->up操作)信号量的使用方式和自旋锁类似,进程只有得到信号量才能执行临界区代码但与自旋锁不同的是,当进程获取不到信号量时并不是原地打转而是睡眠等待中断服务函数不能进行睡眠,因此信号量不能用于中断当中,如果中断函数一定要用信号量可以使用尝试上锁(down_trylock)进行操作,不能获取锁就立刻返回,以避免阻塞,通过返回值判读可执行与否

2017-06-01 18:16:53 1239

原创 Linux 内核中的并发--自旋锁

自旋锁(获取自旋锁->临界区->释放自旋锁)自旋锁的名称源于它的工作原理:尝试获取一个自旋锁,如果锁空闲就获取该自旋锁并继续向下执行;如果锁已被占用就循环检测该锁是否被释放(原地打转直到锁被释放)只有在占用锁的时间极短的情况下使用;不能递归使用一个自旋锁(形成死锁);占用锁时不能使用可能引起进程调度的函数,如copy_xx_user()、kmalloc()、msleep()…自旋锁主要

2017-06-01 18:02:41 736

原创 Linux 内核中的并发--中断屏蔽

中断屏蔽(进入临界区之前屏蔽中断,退出临界区之后开启中断):由于进程调度依赖中断实现,因此进程抢占产生的竞态也得以避免;保证中断服务函数不访问临界区;关中断是一种很谨慎的操作,而且长时间屏蔽中断很危险,要细心使用。在SMP多处理器下,该方式就失效了,因为开关中断都是对本cpu的操作中断屏蔽相关函数:local_irq_disable(); //屏蔽所有中断.

2017-06-01 17:32:19 3561

原创 Linux 内核中的并发--概念

基本概念:并发指的是多个执行单元同时、并行被执行,而并发的执行单元对共享资源(硬件资源和软件上的全局变量、静态变量等)的访问则很容易导致竞态。当多个进程、线程或中断同时访问同一个资源,可能导致错误.进程上下文:应用程序陷入内核运行时所处的内核环境中断上下文:中断服务程序执行时所处的内核环境抢占式内核:用户程序在执行系统调用期间可以被高优先级进程抢占非抢占式内

2017-06-01 17:22:32 791

原创 Linux内核定时器--timer_list

定时器:linux操作系统提供了一个内核定时器内核定时器可在未来的某个特定时间点调度执行某个函数,完成指定任务linux内核定时器提供了一种异步处理的机制用户通过设置将来某一时刻的滴答值来实现定时功能假设HZ的值为200,Linux定时器最短定时时间为5ms,小于该时间的定时可直接通过硬件定时器完成定时器使用过程:定时器接口函数介绍:

2017-06-01 16:54:07 881

原创 Linux 内核延时

linux的时间概念:Linux系统定时器是可编程的频率中断处理器,此频率为每秒的定时器节拍数,对应内核变量HZHZ是一个与体系结构相关的常数:Linux为大多数平台提供HZ值范围为50-1200x86 PC平台默认为1000,我们的内核为200内核中有一个非常重要的全局变量:jiffies它是一个无符号32位整数,用来记录自内核启动以来的时钟滴答总数(即每

2017-06-01 16:43:08 717

原创 Linux内核异步数据处理--kfifo

引题:在驱动编程中,经常会遇到异步数据处理的情况,比如采用中断或定时器处理数据输入输出等情况此时数据的采集与处理往往不同步,于是驱动编程中数据采集方需要将采集的数据暂时放到一个缓冲区中,使用方在需要处理数据时从缓冲区中将数据读出驱动编程中常采用队列这种数据结构来实现整个过程,我们可以选择自己编写一个队列,也可以利用内核中现有队列kfifo来实现kfi

2017-06-01 16:29:23 2399

原创 Linux内核中断底半部--概述

基本概念:在大多数真实的系统中,当中断来临时,要完成的工作往往不能立即完成,而是需要大量的耗时处理。中断处理通常分两个部分:顶半部:一个急切抢占并与硬件交互的顶半部底半部:完成重大工作负载,执行过程中所有中断都是使能的,可被打断。中断的底半部实现机制:软中断(softirq):基本的底半部机制,现在很少使用微线程(tasklet):微

2017-06-01 16:06:45 572

原创 Linux内核中断底半部处理--工作队列

工作队列的使用过程:工作队列相关函数介绍:#include /*头文件包含*/1.工作队列的创建及销毁:定义一个工作队列结构体指针static struct workqueue_struct *key_workqueue;创建工作队列struct workque

2017-06-01 16:05:12 3046

原创 Linux内核中断底半部处理--内核微线程

内核微线程使用过程:内核微线程相关函数介绍:#include //头文件包含微线程创建:方法一(采用宏):DECLARE_TASKLET(name, func, data);参数:微线程名称、任务处理函数、任务处理函数的参数/*无需提前定义,直接写上na

2017-06-01 15:35:16 645

原创 Linux内核中断处理

基本概念: Linux操作系统下同裸机程序一样,需要利用中断机制来处理硬件的异步事件但用户态不允许中断事件,因此中断必须由设备驱动程序来接收与处理如果CPU接收到一个中断,它会停止一切工作,调用中断处理函数,因为进程调度依赖中断,此时进程调度也会停止所以就要求我们的中断处理一定要快中断处理程序运行在中断上下文中断处理程序运行在中断上下文中:上下文:内核运

2017-06-01 14:58:36 603

原创 Linux内核信号

内核信号的概念:信号是UNIX进程间通信的一种标准方式,在最早期的UNIX系统中已经存在。我们在系统编程中了解过,信号可以作为进程间通信的一种方式同样我们编写的驱动也可以使用信号通知应用层及其它进程特定事件的发生内核信号的使用:#include //内核信号接口函数头文件#include //current创建一个信号结构体:

2017-06-01 14:16:05 1249

原创 Linux 内核 线程

内核线程的概念:内核线程类似于用户进程,通常用于并发处理些工作,它是一种在内核空间实现后台任务的方式,并且可以参与时间片轮转调度内核线程可以进行繁忙的异步事件处理,也可以睡眠等待某事件的发生,内核线程可以访问内核函数和数据结构很多设备驱动程序都是用了内核线程来完成辅助任务,例如:USB设备驱动程序中的khubd内核线程用来监控USB集线器,并在USB被热插拔的时候配置USB设备内核

2017-06-01 14:08:10 470

原创 Linux kernel 中的的等待队列(阻塞式)

等待队列在Linux内核中用来阻塞或唤醒一个进程,也可以用来同步对系统资源的访问,还可以实现延迟功能等待队列接口函数介绍:#include //头文件包含1.定义、初始化等待队列(指向等待队列链表)定义一个等待队列头wait_queue_head_t my_queue;初始一个等待队列头

2017-06-01 12:25:27 3647

原创 Linux kernel轮询与等待队列

根据不同需求,linux内核有不同I/O操作模型:非阻塞:进程在不能进行设备操作时,并不挂起,它或者放弃,或者不停地查询,直到可以进行操作为止阻塞:指在执行设备操作时,若不能获得资源,则挂起进程直到满足可操作条件后再进行各项操作等待队列:用来阻塞或唤醒一个进程,实现阻塞I/O访问轮询操作:非阻塞I/O访问的应用程序通常使用select()和poll()系统调

2017-06-01 12:09:45 778

原创 Linux kernel 中的轮询操作-select poll

轮询操作:应用程序通常会使用select()系统调用查询是否可对设备进行无阻塞的访问。该函数通过系统调用最终会引发设备驱动中的poll()函数被执行该机制还可以实现一个用户进程对多个设备驱动文件的监测轮询操作应用层接口函数介绍:文件描述符集合的基本操作:文件描述符集合的变量的定义fd_set fds;清空描述符

2017-06-01 11:44:21 2228

转载 MIPS 指令

MIPS 指令 指令功能应用实例LB从存储器中读取一个字节的数据到寄存器中LB R1, 0(R2)LH从存储器中读取半个字的数据到寄存器中LH R1, 0(R2)LW从存储器中读取一个

2017-05-10 14:09:26 1015

转载 MIPS 架构体系基础知识

一: MIPS寄存器别名记忆:这一段在学习MIPSCPU架构,一直对mips的32个寄存器的约定俗成的别名感到迷惑,今天在系统计算机研究所的网(http://www.xtrj.org/)上看到一篇文章里有这方面的介绍,一下子豁然开朗原来这里的v,a,t前缀就是英文单词的缩写呀。(呵呵,以前害得俺在>书上都没有找到有助于理解的介绍);REGISTER NAME USAGE

2017-04-21 10:10:04 5900

转载 ARM MMU工作原理剖析

一、MMU的产生      许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。但随着图形界面的兴起还用用户需求的不断增大,应用程序的规模也随之膨胀起来,终于一个难题出现在程序员的面前,那就是应用程序太大以至于内存容纳不下该程序,通常解决的办法是把程序分割成

2017-04-20 16:30:56 255

转载 Linux内存管理之kmalloc 与 __get_free_page()

在设备驱动程序中动态开辟内存,不是用malloc,而是kmalloc,或者用get_free_pages直接申请页。释放内存用的是kfree,或free_pages.  对于提供了MMU(存储管理器,辅助操作系统进行内存管理,提供虚实地址转换等硬件支持)的处理器而言,Linux提供了复杂的存储管理系统,使得进程所能访问的内存达到4GB。  进程的4GB内存空间被人为的分为两个部分-

2017-04-20 16:29:23 1428

原创 arch/mips/kernel/head.S 和arch/mips/boot/zcompres/head.S 关系

arch/mips/boot/zcompres/下的ld.script , head.S misc.c piggy.c dummy.c 是为了在生成的vmlinux加上解压的头使用的arch/mips/kernel/head.S 是内核运行start_kernel之前的初始化汇编代码。最终进入已start_kernel开始的C语言历程先占位,等有时间了具体分析一下

2017-04-19 11:47:47 604

转载 Linux下的lds链接脚本基础

0. Contents1. 概论2. 基本概念3. 脚本格式4. 简单例子5. 简单脚本命令6. 对符号的赋值7. SECTIONS命令8. MEMORY命令9. PHDRS命令10. VERSION命令11. 脚本内的表达式12. 暗含的连接脚本1. 概论    每一个链接过程都由链接脚本(linker script, 一般以lds

2017-04-19 10:51:28 524

linux 下lz4 lz4-1.9.3.tar.gz

linux 下lz4 lz4-1.9.3.tar.gz

2022-09-16

adv7613.tar.bz2

adv7613.tar.bz2

2021-01-21

小负载分析工具软件源代码

根据电流电压总结规律,区分电器

2016-11-15

verilog-FPGA实例

verilog-FPGA实例

2016-08-25

Tslib中触摸屏校准原理及其实现

Tslib中触摸屏校准原理及其实现

2016-08-25

国外一个很好的C++ tree 库

C++ tree 库

2016-08-25

电力载波通信原理与实现

电力载波通信原理与实现

2016-08-25

qt 串口库qextserialport-

qt 串口库qextserialport-

2016-08-25

学生公寓智能电能管理系统的设计与实现

学生公寓智能电能管理系统的设计与实现

2016-08-25

easy eye 虹膜算法

easyeye

2016-08-24

IrisSegmentation-CUDA

IrisSegmentation-CUDA

2016-08-24

Iris_Osiris_v4.1

Iris_Osiris_v4.1

2016-08-24

国外几款算法-iriscode

国外几款算法

2016-08-24

国外几款算法虹膜算法

国外几款算法

2016-08-24

xgcom-0.04.2.tgz

2016-07-05

Linux内核设计与实现_第三版_清晰中文版.pdf

Linux内核设计与实现_第三版_清晰中文版.pdf

2016-04-06

qTableWidget拖拽

qTableWidget拖拽

2014-07-01

qlistWidget拖拽

qlistWidget拖拽

2014-07-01

qt静态编译windows配置

qt静态编译windows配置

2013-08-22

嵌入式设计师历年试题,答案,笔记

这是从2006年到2010年嵌入式设计师考试的历年试题,里面包含答案和复习资料,希望对大家有帮助

2012-04-27

片上系统开发板的说明书

这是跟随革新开发板的实验说明书,关于想要软件源代码和裁剪的软核实例可以联系我

2012-04-27

linux c语言示例代码

这是21天学linux c语言的源代码,网上有关于它的电子书可以对应参考

2012-04-27

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除