- 博客(38)
- 资源 (2)
- 问答 (2)
- 收藏
- 关注
原创 BL808 Linux 支持WIFI 固件编译流程
接上一篇文章《》,里面提供了了一个demo固件下载,固件中有几个问题:1、LP核没有被拉起来2、wifi热点连接接和xram_net模块都需要通过命令来拉起, 自己编译可改为自动执行。3、D0核的loader代码中加了调试延时,过10秒左右才启动的内核4、D0核的xram_net编译成内核模块,且没自动加载,IP配置也是固定的5、LP核运行起来后会使M0核运行变慢。
2024-02-19 19:56:13 723
原创 BL808 Linux支持WIFI
BL808是高度集成的AIoT芯片组,具有Wi-Fi/BT/BLE/Zigbee等无线互联单元,包含多个 CPU 以及音频编码译码器、视频编码译码器和 AI 硬件加速器,适用于各种高性能和低功耗应用领域。外围接口包括 USB2.0、 Ethernet、 SD/MMC、 SPI、 UART、 I2C、 I2S、 PWM、 GPDAC/GPADC、 ACOMP、 PIR、 Touch、IR remote、 Display 和 GPIO。支持灵活的 GPIO 配置, BL808 最多可达 40 个 GPIO。
2024-02-02 20:02:58 650 1
原创 进程—内存描述符(mm_struct)
转自:进程—内存描述符(mm_struct)_宇哲-CSDN博客_mm_struct,部分内容修改前言上一篇我们谈论了task_struct这个结构体,它被叫做进程描述符,内部成员包含了很多与进程相关的信息,今天我们来看一下其中一个被叫做内存描述符的结构体——mm_struct,用来描述linux下进程的地址空间的所有的信息。1.概述一个进程的虚拟地址空间主要由两个数据结来描述。一个是最高层次的:mm_struct,一个是较高层次的:vm_area_struc...
2021-10-21 09:12:17 576
原创 数组指针,指针数组
#include <stdio.h>#include <stdint.h>#define BAP_FCT_ID_MAX 64typedef struct{ uint16_t len; void *buffer;}bap_cache_buffer_t;bap_cache_buffer_t cache_info_table1[BAP_FCT_ID_MAX] = { {0,(void *)1}, {0,(void *)2}, {6,(voi.
2021-07-27 14:43:21 110
原创 PyQt窗口最小化到托盘
1、主要步骤包含 创建系统托盘对象 为系统托盘设置图片 为系统托盘设置事件处理函数 为系统托盘设置菜单 self.tray = QSystemTrayIcon() #创建系统托盘对象 self.icon = QIcon('mac.png') #创建图标 self.tray.setIcon(
2016-09-29 11:57:49 9963 1
原创 printf相关
va_list、va_arg、va_end是为了处理变参数的函数而做的宏定义,这些定义会因为平台(cpu、操作系统)和环境(编译系统)的不同而有所不同。简单原理:编译系统编译时,会将函数的参数依次放到栈中,这样根据固定参数的地址以及固定参数给出的相关信息很容易得到可变参数的个数、类型、值。注意一点,这些或者是固定参数给出的信息,虽然不是直接给出的;或者是程序写作者自我约定。得到了可变参数,
2016-08-15 14:05:56 360
转载 uTron内核原理和服务调用
转载:http://hi.baidu.com/qinzhispace/item/46a0dfe13131cf216dabb8a7一:Kernel篇1.描述:uItron内核,是操作系统的核心,可以实时多任务处理,它有三个主要的概要:1.1响应事件:(Response to events)认可的事件可以异步的产生,并且可以立即执行一个任务去处理这 个事件。1.2任务调度:(T
2016-08-01 10:38:48 1967
原创 Uboot学习笔记
1、Uboot官方下载地址 ftp://ftp.denx.de/pub/u-boot/2、编译Uboot一般步骤 (1) 解压源码包 (2) 使用make XXX distclean清除原有编译文件 (3) 配置Uboot平台 (4) 执行编译生成uboot.bin或者uboot文件3、
2016-04-22 13:31:50 977
原创 UDS笔记
1、【冻结帧数据】:当出现与排放相关的故障时,ECU会设置故障码,同时也会记录故障发生瞬间的车辆运行状态信息,以确认故障,这些记录的信息就被称为冻结帧
2016-04-20 15:00:48 3979
转载 H264编码原理以及I帧B帧P帧
前言 H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理论依据是:参照一段时间内图像的统计结果表明,在相邻几幅图像画面中,一般有差别的像素只有10%以内的点,亮度差值变化不超过2%,而色度差值的变化只有1%以内。所以对于一段变化不大图像画面,我们可以先编码出一个完整的图像帧A,随后的B帧就不编码全部图像,只写入与A帧的差别,
2016-04-05 10:29:01 750
原创 live555学习笔记
1、生成makefile live555源码里提供了genMakefiles脚本来快速生成makefile文件,比如./genMakefiles armlinux 即生成arm linux平台的makefile脚本。 config.armlinux即为armlinux平台的配置文件。可以修改该文件中的具体编译器配置来配合自己的编译环境。
2016-04-01 10:41:54 974
原创 检测进程是否存在
//检查指定进程是否存在int detect_process(const char * process_name) { int n = -1; FILE *strm; char buf[128]; sprintf(buf,"ps -e | grep -c %s", process_name);
2016-03-22 14:47:52 722
原创 视频相关学习笔记
NTSC标准每秒29.97帧(简化为30帧),电视扫描线为525线,偶场在前,奇场在后,标准的数字化NTSC电视标准分辨率为720*480像素, 24比特的色彩位深,画面的宽高比为4:3或16:9。NTSC电视标准用于美、日等国家和地区。PAL与NTSC的区别电影放映的时候都是每秒24个胶片帧。而视频图像PAL制式每秒50场,NTSC制式每秒60场,由于电视都是隔行场,所以
2016-03-16 20:12:28 419
转载 C++ 匿名namespace的作用以及它与static的区别
一、匿名namespace的作用在C语言中,如果我们在多个tu(translation unit)中使用了同一个名字做为函数名或者全局变量名,则在链接阶段就会发生重定义错误,为了解决这个问题,我们可以在定义这些标识符(identifier)的时候加上static关键字修饰以限制它只在一个tu范围内可见。C++继承了C语言中static关键字的这个用途,我们依旧可以使用static来避免多个
2016-01-25 09:05:45 1416
原创 vs中release模式下assert中的代码不执行
vs中,加了assert中的代码在Debug模式下能执行,但在Release模式下不执行,在网上终于找到了解释。如下 _DEBUG 与 NDEBUG :当定义了 _DEBUG 时,assert() 函数会被编译,而 NDEBUG 时不被编译。除此之外,VC++中还有一系列断言宏。这包括: ANSI C 断言 void assert(int
2016-01-25 09:00:25 2122
转载 live555 h264videostream数据流与时间戳分析
转自http://blog.sina.com.cn/s/blog_4471470b0101opug.htmlrtsp客户端发送播放请求后,rtsp服务器调用流程如下h264 video rtsp1.ServerMediaSubsession::startStream -> OnDemandServerMediaSubsession::startStream2.sta
2016-01-08 14:46:48 2372
原创 C#学习笔记
1、 C#值类型数据直接在他自身分配到的内存中存储数据,而C#引用类型只是包含指向存储数据位置的指针。2、在C#中,通过引用传递是通过ref关键字实现的。比如 void Proc(ref int para)3、使用引用,C#在传递参数时,必须使用ref关键字。比如 Proc(ref value)4、
2015-12-21 11:09:22 502
原创 Linux ramfs tmpfs使用
基于tmpfs或ramfs把linux把目录映射为内存。在linux系统中,我们可以通过挂载tmpfs或ramfs文件系统实现对内存的访问使用。对于一些关键业务来说,可以考虑将主要的读写进程通过Tmpfs或Ramfs文件系统放入内存中执行。1、挂载mkdir -p ~/tmpsudo mount -t ramfs -o size=1024m ramfs ~/tmp2、查看挂载
2015-12-14 15:53:58 2103
原创 Linux学习笔记二
1、 htons的功能:将一个无符号短整型的主机数值转换为网络字节顺序,即大端顺序(big-endian),高位字节存放在内存的低地址处。2、ntohs将一个无符号短整形数从网络字节顺序转换为主机字节顺序3、
2015-12-11 13:44:27 373
原创 Linux VIM使用
1、p 将复制的内容粘贴到下一行。2、yy复制当前行3、yyn n为行数 复制当前光标所在行开始的n行4、dd删除当前行 5、ndd 从当前行算起,删除往下的n行,相当于执行dd n次
2015-11-05 16:05:49 384
转载 Linux文件权限
chmod ABC file其中A、B、C各为一个数字,分别表示User、Group、及Other的权限。A、B、C这三个数字如果各自转换成由“0”、“1”组成的二进制数,则二进制数的每一位分别代表一个角色的读、写、运行的权限。比如User组的权限A:如果可读、可写、可运行,就表示为二进制的111,转换成十进制就是7。如果可读、可写、不可运行,就表示为二进制的110,转换成十进制就是
2015-11-04 08:20:13 331
转载 结构体对齐
结构体字节对齐 在用sizeof运算符求算某结构体所占空间时,并不是简单地将结构体中所有元素各自占的空间相加,这里涉及到内存字节对齐的问题。从理论上讲,对于任何 变量的访问都可以从任何地址开始访问,但是事实上不是如此,实际上访问特定类型的变量只能在特定的地址访问,这就需要各个变量在空间上按一定的规则排列, 而不是简单地顺序排列,这就是内存对齐。 内存对齐的原因:
2015-10-15 16:35:55 352
原创 BLE 设计
1、芯片对外的接口有 LED(状态指示)、ADC(检测电池电压)、CHRG STBDY(控制充电)、KEY(触发按键)、M_KEY(功能按键)、SW(开关)。2、目前实现的逻辑有 可通过Key触发CC2541退出低功耗模式,进入广播状态,让其与主机相连。如果连接成功,则点亮红色LED(模拟开关)。3、如果连接状态为断开,则熄灭红色LED。4、如果长按M_KEY 10秒以上,则清除绑定
2015-09-20 10:36:45 662
原创 Python 将指定目录下的文件的顺序数字命名的bin文件合并为一个bin文件(数据组织)
1import osimport numpy as npf_out = open("romData.bin","wb")pad_data = [0xFF for i in range(38400)] for fileCnt in range(46): fileCnts = fileCnt file_name = r"E:\DrDaifiles\zm2\SpiF
2015-09-14 13:49:58 2467
转载 滤波器
无源滤波器通常是以 L-C、R-C 等无源器件组成的一种只允许通过给定的频带信号而阻止其它频率信号通过的选频网络。无源滤波器常用在旁路、平滑滤波、电源去耦以及高频滤波等电路中。在测试系统中,常用 RC 滤波器。因为在这一领域中,信号频率相对来说不高。而 RC 滤波器电路简单,抗干扰性强,有较好的低频性能,并且选用标准的阻容元件易得,所以在工程测试的领域中最经常用到的滤波器是 RC 滤波器。对各种无
2015-09-09 13:00:37 1907
原创 Python 读取WAV文件并绘制波形图
# -*- coding: utf-8 -*-import waveimport pylab as plimport numpy as np# 打开WAV文档f = wave.open(r"1.wav", "rb")# 读取格式信息# (nchannels, sampwidth, framerate, nframes, comptype, compname)params = f.g
2015-09-08 13:16:29 22145
原创 Python 绘制频谱
# -*- coding: utf-8 -*-import numpy as npimport pylab as plsampling_rate = 8000fft_size = 512t = np.arange(0, 1.0, 1.0/sampling_rate)x = np.sin(2*np.pi*156.25*t) + 2*np.sin(2*np.pi*234.375*t)xs
2015-09-08 13:15:19 15422 3
原创 Python 低通滤波器
Python低通滤波器# -*- coding: utf-8 -*-from scipy import signalimport numpy as npimport matplotlib.pyplot as plimport matplotlibimport mathN = 0#500fs = 5n = []#[2*math.pi*fs*t/N for t in rang
2015-09-08 12:58:36 19884
原创 Python 读取WAV音频文件 画频谱
Python 读取WAV文件 import waveimport structfrom scipy import *from pylab import *#读取wav文件,我这儿读了个自己用python写的音阶的wavfilename = '1.wav'wavefile = wave.open(filename, 'r') # open for writing#读取wav文件的四
2015-09-08 12:56:36 23553 9
原创 Java学习笔记
1、java的多线程主要包括的内容有 使用Thread类的子类创建线程(继承Thread类)、 使用Runnable接口 、线程的常用方法 、GUI线程、 线程同步、在同步方法中使用wait() notify()和notifyAll()方法、 挂起 恢复和终止线程 、计时器线程Timer、线程联合、守护线程等。2、
2015-09-05 14:27:12 346
原创 Linux学习笔记
1.让任务在后台运行# ./pso > pso.file 2>&1 & 2.脚本执行for循环 比如5次for i in $(seq 1 5);doifconfig ra0sleep 5done3.# uname -a 查看内核/操作系统/CPU信息4.# lsusb 列出所有USB设备 5.# en
2015-08-07 16:57:49 337
原创 设置linux端口转发
设置linux端口转发假设有两台服务器,A和B。我需要把访问A服务器的8081端口的数据转发到B服务器的8081端口,并接收B服务器的响应数据。命令如下:#echo 1 > /proc/sys/net/ipv4/ip_forward#iptables -t nat -I PREROUTING -p tcp --dport 8081 -j DNAT --to xx.x
2015-08-07 16:55:27 503
原创 FreeRTOS 内存管理源码分析
FreeRTOS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License (version 2) as published by the Free Software Foundation AND MODIFIED BY the FreeR
2014-10-14 10:21:30 797
转载 (转)ucos的事件 任务的通讯和同步 信号量 互斥量 消息邮箱 消息队列
这会想了想,在复习资料后,最后再做个核心代码分析ucos中使用信号量、消息邮箱、消息队列,这些数据结构来作为通信中间媒介。这些数据结构会影响任务的程序流程,因此也叫做事件。一、信号量是进行任务通信的最基本事件二值信号可以实现共享资源的独占,也叫互斥信号量。注意:使用信号量的时候要,高优先级的任务等待接受信号量的时候,高优先级的任务在等待接受信号量的时候,
2014-02-20 17:03:00 1945
原创 虚拟字符驱动函数的实现
根据网友的模版改写的虚拟字符驱动函数的实现,可以实现应用程序数据写入驱动程序所在内核空间,以及读出功能。可作为驱动函数初学的参考以下是驱动程序代码#include #include #include #include #include /* copy_to_user,copy_from_user */#define MY_MAJOR 240static u
2013-11-02 11:19:07 535
基于开源EasyPR的车牌识别Android工程源码 ER_CarPlate
2016-01-24
KVM 虚拟化地址转换 GVA和HPA链路
2021-09-27
请问QNX Hypervisor是Type1型虚拟机还是Type2型虚拟机?
2021-09-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人