cmake学习
学习自https://subingwen.cn/cmake/CMake-primer/。https://www.bilibili.com/video/BV14s4y1g7Zj/?p=3&spm_id_from=pageDriver&vd_source=a65f19543c0eb665983d7177bd50730e
!!!!!!编译过程中如果需要同时产出静态库和可执行程序或者动态库,一定要一步一步来,不要想着一次性调通,血泪
第一步本次用c++简单测试12345678$ tree结构.├── add.cpp├── div.cpp├── head.h├── main.cpp├── mult.cpp└── sub.cpp
1、 add.cpp1234567#include <stdio.h>#include "head.h"int add(int a, int b){ return a+b;}
2、sub.cpp1234567#include <stdio.h>#include "head.h ...
操作系统
1、操作系统概述操作系统概念:操作系统是系统资源的管理者,是管理计算机硬件与软件资源的计算机程序。提供给用户和其他软件方便易用的接口和环境。最接近硬件的软件。
例子用qq和朋友视频聊天step 1、在文件夹中找到qq安装位置(如d:/qq) — 逐层打开文健夹stpe 2、双击qq.exe — 需要把程序相关数据放入内存step 3、qq正常运行 —- 对应进程被处理机(cpu)处理step 4、qq聊天 — 需要将摄像头分配给进程
补充:执行一个程序前,需要将该程序放入到内存中,才能被cpu处理
作为系统资源的管理者,主要提供以下功能: 1 、处理机管理 2、存储器管理 3、文健管理 4、设备管理作为管理者向用户提供的接口:1、GUI图形管理界面 2、交互式命令接口 3、脱机批处理接口作为管理者向应用软件提供接口: 1、系统调用接口
操作系统作为最接近硬件的层次对硬件机器进行了扩展:将cpu、硬盘、磁盘、内存等硬件资源进行协调配合。实现了很多复杂的功能。
2、操作系统的特征
1、并发微观上交替执行,宏观上同时运行。与并行区别是两个或者多个时间同一时间发生。容易混淆。 ...
kernel移植(linux5.1571移植)
移植版本5.1571
1、拿到源码编译测试
1、下载源码
2、编译123456#!/bin/bashpath="/home/ygc/Desktop/linux-gcc/2021-6ull/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin"make ARCH=arm CROSS_COMPILE=${path}/arm-none-linux-gnueabihf- distcleanmake ARCH=arm CROSS_COMPILE=${path}/arm-none-linux-gnueabihf- imx_v7_defconfigmake ARCH=arm CROSS_COMPILE=${path}/arm-none-linux-gnueabihf- menuconfigmake ARCH=arm CROSS_COMPILE=${path}/arm-none-linux-gnueabihf- all -j16
测试编译。链接 ...
linuxCpp
1、c++对c的扩展1-1、冒号作用域:: 运算符是一个作用域,::代表是全局作用域。
1234567891011121314#include <iostream>using namespace std;int a = 100;void test01(){ int a = 10; cout << a << endl;//输出局部变量a cout << ::a << endl;//输出全局变量a}int main(){ test01(); return 0;}
1-2、名字控制1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677#include <iostream>using namespace std;names ...
rootfs移植-详细
主要介绍做中文支持和启动内核后的init脚本
有关于启动的脚本提前在这里说明:
1setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs nfsroot=192.168.8.217:/home/ygc/Desktop/project/nfs/rootfs,rw,nfsvers=3,proto=tcp ip=192.168.8.120:192.168.8.217:192.168.8.1:255.255.255.0::eth0:off init=/bin/sh nfsdebug=7'
初始化脚本 init= 什么可以不指定,就可以让系统判断。
1、下载源码,官网下载比较简单,略
1-1、添加中文支持printable_string.c中将下面删除
12if (c >= 0x7f) break;
往下找下面
1234break; if (c < ' ' || c >= 0x7f) *d = '?'; d++;
改为
1234break; if ( ...
uboot移植(uboot2024.4移植)
imx6ull板子为例:下载源码:https://github.com/nxp-imx/uboot-imx/tree/lf_v2024.04注意设备树的语法最后要空行
1、编译拿到源码后,先编译一遍和自己要移植的板子所用的芯片匹配的配置文件。如我这里用的是imx6ull的板子,就需要编译imx6ull的配置文件。编译过后,需要改的目录下生成了一些文件,可以按照文件去判定编译的配置文件是否和自己板子匹配。
12345678910#!/bin/bashpath="arm CROSS_COMPILE=/home/ygc/Desktop/linux-gcc/2021-6ull/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-"make ARCH=arm CROSS_COMPILE=${path} distcleanmake ARCH=arm CROSS_COMPILE=${path} menuconfigmake ARC ...