- 博客(33)
- 收藏
- 关注
原创 制作静态库的Makefile
LIB_NAME = libaes256.aCC=/home/muke/work/AES/ssn-buildroot-cortexa7-with-stee/3.0/usr/bin/arm-buildroot-linux-gnueabihf-clangAR=/home/muke/work/AES/ssn-buildroot-cortexa7-with-stee/3.0/usr/bin/arm-buildroot-linux-gnueabihf-arDX_OPT=-steec-extra-opts=-x
2021-03-24 15:10:49
166
原创 Cjson-Demo
cjson文件写入操作#include <stdio.h>#include <string.h>#include <cjson/cJSON.h>int main(void){ //创建空对象 cJSON *root = cJSON_CreateObject(); cJSON *item = cJSON_CreateObject(); cJSON *next = cJSON_CreateObject(); cJSON *obj = cJSON_Crea
2021-03-24 14:43:18
166
原创 制作根文件系统的EXT2镜像文件
本文参考了 [loop设备及losetup命令介绍] (http://blog.csdn.net/ustc_dylan/article/details/6878252) 以及[制作ext2根文件系统(http://blog.csdn.net/zhengmeifu/article/details/24174513)
2021-01-25 18:57:56
466
原创 Yocto工具链下制作mkfs.ext4命令
1:本人参考了两篇文章,分别为制作嵌入式文件系统工具 mkfs.ext2 mkfs.ext3 mkfs.ext4 和 e2fsprogs 编译安装2:网上有很多关于mkfs.ext4命令,但是关于通过YOCTO工具链编译生成mkfs.ext4命令则几乎没有
2021-01-25 18:57:39
1224
原创 ARM_Stress 开发板压力测试
压力测试工具的百度云链接: http://pan.baidu.com/s/1kUXtxXHtar zxvf stress-0.18.1.tar.gz 查看README.txt,本文主要讲解如何交叉编译stess文件移植到开发板上。第一种方法: 在解压后的路径下输入:./configure --host=aarch64-poky-linuxmakecd src/file stress第二种方法
2021-01-25 17:50:32
1273
3
原创 输入子系统匹配过程之list_for_each_entry()函数分析
转载的文章:输入子系统匹配过程之list_for_each_entry()函数分析 重点: list_for_each_entry()宏函数分析:/** * list_for_each_entry - iterate over list of given type * @pos: the type * to use as a loop cursor. ...
2021-01-25 17:48:43
175
原创 开发板不同启动方式
1:以太网启动uboot bootargs bootcmd bootm启动参数的意义:(http://blog.csdn.net/cgzhello1/article/details/7852033) 环境参数如下:setenv bootargs ‘root=/dev/nfs rw nfsroot=192.168.1.4:/exports/rfs ip=192.168.1.200 co...
2021-01-25 17:48:27
289
原创 通过lauterbach将image等烧录到开发板中
**一:lauterbach的烧录**打开软件: 1:file -> run script 输入脚本RESetSYStem.CPU R8AXXXXSYStem.Option DisMode AARCHXX ;SYStem.JtagClock CTCK 30MHzCORE.ASSIGN 1SYStem.Up;SYStem.Attach2:B:...
2021-01-25 17:48:06
523
原创 IRQ中断以及tasklet的示例代码
drivers/crypto/atmel-sha.c IRQ中断以及tasklet的示例代码/* * Cryptographic API. * * Support for ATMEL SHA1/SHA256 HW acceleration. * * Copyright (c) 2012 Eukr茅a Electromatique - ATMEL * Author: Nicol...
2021-01-25 17:47:55
191
原创 uboot环境变量实现分析
uboot环境变量实现分析:https://blog.csdn.net/skyflying2012/article/details/39005705uboot/include/configs/r8a7795_salvator-x.h CONFIG_ENV_IS_NOWHERE 可以关闭uboot命令行下的环境变量define CONFIG_EXTRA_ENV_SETTINGS/*...
2021-01-25 17:47:39
184
原创 Camera的热插拔-中断和sys_open
/* * MAXIM max9286-max96705 GMSL driver * * Copyright (C) 2015-2017 Cogent Embedded, Inc. * * This program is free software; you can redistribute it and/or modify it * under the terms of the...
2021-01-25 17:47:27
276
原创 U盘启动内核及挂载根文件系统方法
U盘分区及格式化: 1、 将u盘插入PC,在linux系统/dev/文件夹下找到u盘对应的设备文件,如sdb 2、 用fdisk指令将u盘分为2个区 fdisk /dev/sdb n //新建分区 p 1 //分区1 Enter键 //选择default +1G //设置分区大小为1GB n p 2 //分区2...
2021-01-25 17:47:03
425
原创 Uboot启动流程分析
uboot的第一阶段做了哪些工作 (1)构建异常向量表 (2)设置CPU为SVC模式 (3)关看门狗 (4)开发板供电置锁 (5)时钟初始化 (6)DDR初始化 (7)串口初始化并打印”OK” (8)重定位 (9)建立映射表并开启MMU (10)跳转到第二阶段uboot启动2阶段总结(启动流程回顾、重点函数标出) (1)第二阶段主要是对开发板级别的硬件、软件数据结构进行初始化。
2021-01-25 17:46:46
248
原创 在应用层打印内核寄存器
#include <stdio.h>#include <stdlib.h>#include <time.h>#include <unistd.h>#include <fcntl.h>#include <unistd.h> #include <sys/mman.h>#define CSI40_BASE
2021-01-25 17:46:33
84
原创 重装Mint系统后做的事情
1: 开启内核编译的make menuconfigsudo apt-get updadesudo apt-get install libncurses5-dev2: 下载sudo apt-get install emacs sudo apt-get install globalsudo apt-get install treesudo apt-get install conky...
2021-01-25 17:46:07
195
原创 YUV各种格式所占的内存的大小总结
第一个像素的YUV值为:Y0 U0 V0第二个像素的YUV值为: Y1 U0 V0第三个像素的YUV值为: Y2 U1 V1意味着一个Y肯定对应一个像素点图片的大小定 义为:w * h,宽高分别为w和h一、YUV420格式先Y,后V,中间是U。其中的Y是w * h,U和V是w/2 * (h/2)如果w = 4,h = 2,则:yyyyyyyyuuvv内存则是:yyyyyyy...
2021-01-25 17:45:52
3188
原创 Tar 解压缩
打包:将整个 /etc 目录下的档案全部打包成为 /tmp/etc.tar[root@linux ~]# tar cvf /tmp/etc.tar /etc &lt;==仅打包,不压缩![root@linux ~]# tar zcvf /tmp/etc.tar.gz /etc &lt;==打包后,以 gzip 压缩[root@linux ~]# tar jcvf /tmp/et...
2021-01-25 17:45:33
203
转载 const与非const类型赋值问题
const与非const类型赋值问题以前总有个问题想不通,就是为什么从const char到char的赋值就会出错,而const int到int的赋值就没问题呢?呵呵,不知道有没有其他新手和我有相同的疑问呢?还算我运气好,今天不知道怎么会触发了灵感,终于把这个小白问题想通了。答案就是:从const int到int的赋值操作,是一种对象的拷贝,赋值后我们在对象的副本上操作当然不会有问题。从co...
2021-01-25 17:45:07
2222
2
原创 非指针数据通过void *指针转换
int main(){ int a = 1; void* b; int c; b = (void *)&a; c = *((int *)b); std::cout << "value of c: " << c << std::endl; return 0;}
2021-01-25 17:43:24
149
原创 驱动void数据传递至应用层的修改
typedef struct { _Fdm_Driver *drv; /**< Pointer to the driver object to which this channel is created. */ ...
2021-01-25 17:43:10
107
原创 Ubuntu指定库的编译安装路径
编译安装过程规划安装路径将编译源码得到的程序资源安装到用户目录 /home/muke/myuser下。 ./configure --prefix=/home/muke/myuser则安装后,/home/muke/myuser 目录下会多出 bin、include、lib、share 等目录配置环境变量编辑 /etc/profile,添加如下几行:export PATH=/home/...
2021-01-25 17:42:47
1833
原创 通用性Makefile文件
#把所有的目录做成变量,方便修改和移植 BIN = ./binSRC = ./srcINC = ./includeOBJ = ./obj#提前所有源文件(即:*.c文件)和所有中间文件(即:*.o)SOURCE = $(wildcard ${SRC}/*.c)OBJECT = $(patsubst %.c,${OBJ}/%.o,$(notdir ${SOURCE}))#SRC ...
2021-01-25 16:14:27
107
原创 mydebug.h
put it in “include/linux” #include linux/mydebug.h&amp;amp;amp;gt;#define __MYDEBUG__#ifdef __MYDEBUG__ #define MYDEBUG(format,...) printk(&amp;amp;quot;File: &amp;amp;quot;__FILE__&amp;amp;quot;, Line: %05d: &am
2020-08-27 15:52:43
176
原创 C链表的Demo
#include <stdio.h>#include <stdlib.h>#include <pthread.h>#include <unistd.h>typedef struct list { int data; struct list* next;} mylist;int printflist(mylist* list){...
2020-03-10 12:05:51
257
转载 移植uboot-分析uboot启动流程(详解)
本节总结:uboot启动流程如下:1)设置CPU为管理模式2)关看门狗3)关中断4)设置时钟频率5)关mmu,初始化各个bank6)进入board_init_f()函数 (初始化定时器,GPIO,串口等,划分内存区域)7)重定位 复制uboot,然后修改SDRAM上的uboot链接地址)8)清bss9)跳转到board_init_r()函数,启动流程结束转载自移植ub...
2020-01-31 13:49:52
184
原创 五 DMA及Cache一致性
cache的作用: CPU在访问内存时,首先判断所要访问的内容是否在Cache中,如果在,就称为“命中(hit)”,此时CPU直接从Cache中调用该内容;否则,就称为“missing”,CPU只好去内存中调用所需的子程序或指令了。 CPU不但可以直接从Cache中读出内容,也可以直接往其中写入内容。 Cache的存取速率相当快,使得CPU的利用率大大提高,进而使整个系统的...
2020-01-30 01:26:31
650
原创 四 page_fault、内存IO交互、VSS、LRU
page_fault缺页中断的处理进程线性地址空间里的页面不必常驻内存,在执行一条指令时,如果发现他要访问的页没有在内存中(即存在位为0),那么停止该指令的执行,并产生一个页不存在的异常,对应的故障处理程序可通过从外存加载该页的方法来排除故障,之后,原先引起的异常的指令就可以继续执行,而不再产生异常。当一个进程发生缺页中断的时候,进程会陷入内核态,执行以下操作:1、检查要访问的虚拟地址是否合...
2020-01-29 22:04:10
777
原创 三 页的alloc与free、Buddy算法以及CMA
页的alloc与free转载自深入浅出内存管理–alloc_pages与free_page分析(框图)alloc_pages用于连续物理内存的分配,它的实现如下图所示从这个流程图来分析,函数是一步一步调用到buffered_rmqueue的,alloc_pages是页分配器的对外接口,系统中很多模块和驱动可以直接调用它申请到内存,而buffered_rmqueue是底层伙伴系统算法的实现。...
2020-01-29 17:17:28
853
原创 二 OOM打分因子、oom_adj以及oom_score
本文主要摘选两个来源,一个是宋宝华老师的内存详解,一个是蜗窝科技。一、 什么是OOMOOM就是out of memory的缩写,虽然linux kernel有很多的内存管理技巧(从cache中回收、swap out等)来满足各种应用空间的vm内存需求,但是,当你的系统配置不合理,让一匹小马拉大车的时候,linux kernel会运行非常缓慢并且在某个时间点分配page frame的时候遇到...
2020-01-29 14:56:18
5748
原创 一 linux虚拟内存、MMU、分页的基本原理
最近学习了内存管理的相关知识点,主要参考了三者:1:宋宝华老师的内存讲解视频2:蜗窝科技:http://www.wowotech.net/sort/memory_management3:三个有意思的博客:https://www.cnblogs.com/linhaostudy/category/1073669.htmlhttps://blog.csdn.net/zhoutaopower/article/details/86700419
2020-01-28 23:48:42
1103
原创 Max9286上层应用程序
1:抓取一帧图像,然后在tmp目录下有video.yuv,拷贝到windows下用yuvplayer播放,格式选择 YUY2 2: 要切换分辨率,define MY_WIDTH 1024define MY_HEIGHT 768执行命令: ./ccccc /dev/video0 编译命令 source /opt/poky/2.1.2/environment-...
2020-01-28 11:23:32
248
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人