- 博客(17)
- 收藏
- 关注
原创 arm-linux开发环境安装
野火的i.mx6ull开发板,按照配套资料《i.MX Linux开发实战指南》安装ubuntu18.04虚拟机。vmvare15.5安装ubuntu18.04,过程不再赘述。因为之前本地的vmware版本稍微有点旧,在选择虚拟机硬件兼容性时,最高可以选择Workstation 12.x,在安装系统的时候会挂死在打印信息的阶段。网上有说可以选择Workstation 6.0解决,我没有试过,直接...
2020-04-07 23:19:16 385
原创 编译arm-linux时遇到的问题
野火mx6ull开发板,1、git失败问题:error: RPC failed; curl 18 transfer closed with outstanding read data remaining解决方法:两种方法一起使用了,可以成功,具体是那个生效的不确定。git config --global http.postBuffer 524288000 git config...
2020-04-07 22:50:32 3171 1
原创 vmware tools下载缓慢问题解决
用vmware 15.5安装ubuntu 18.4系统,安装vmware tools时,用菜单栏中的“安装 vmware tools”,下载非常缓慢,而且最终会下载失败。在http://softwareupdate.vmware.com/cds/vmw-desktop/ws/15.5.0/14665864/linux/packages/里面下载的文件解压出来是个Py文件,我也不知道要...
2020-04-06 23:09:25 8563
原创 linux系统组成
Linux 内核主要由 5 部分组成,分别为:进程管理子系统,内存管理子系统,文件子系统,网络子系统,设备子系统由系统调用层(系统调用子系统)进行统一管理,应用层通过系统调用层的函数接口与内核进行交互, 用户应用程序执行的地方是用户空间,用户空间之下则是内核空间, Linux 内核正是位于内核空间中。1、进程管理子系统进程管理的核心就是进程的调度。在 Linux 内核中,进程调...
2020-03-26 22:56:00 351
原创 U-Boot
Universal Boot LoaderU-Boot 的主要作用是用来启动操作系统内核,它分为两个阶段, 即 boot + loader,boot 阶段启动系统,初始化硬件设备,建立内存空间映射图,将系统的软硬件带到一个合适的状态, loader 阶段将操作系统内核文件加载至内存,之后跳转到内核所在地址运行。当一个开发板上电的时候,即使是执行非常简单的程序,都需要进行很多初始化的操作,如...
2020-03-26 22:13:20 169
原创 交叉编译环境
1 单板上电连接网线、串口线。登录串口终端(用户名root,没有密码)2 登录虚拟机查看虚拟机IP开启NFS服务1、安装NFS服务sudo apt-get install nfs-kernel-server2、查看用户 id在配置 NFS 时需要使用到用户 uid 和组 gid,可使用 id 命令查看,在开发主机上的终端输入如下命令:3、配置NFS安装...
2020-03-25 20:11:01 215
原创 SNN、RNN、CNN
单层神经网络(感知器)在“感知器”中,有两个层次。分别是输入层和输出层。输入层里的“输入单元”只负责传输数据,不做计算。输出层里的“输出单元”则需要对前面一层的输入进行计算。 我们把需要计算的层次称之为“计算层”,并把拥有一个计算层的网络称之为“单层神经网络”。感知器的训练法则对于单个感知器的权值,已经有几个常用算法,这里给出两种:感知器法则、delt...
2020-03-22 20:48:09 4832
原创 LVS Nginx
OSI模型https://blog.csdn.net/weixin_41944347/article/details/88709570这个模型学了好多次,总是记不住。今天又看了一遍,发现用历史推演的角度去看问题会更有逻辑,更好记。总体来说,OSI模型是从底层往上层发展出来的。这个模型推出的最开始,是因为美国人有两台机器之间进行通信的需求。需求1:科学家要解决的第一...
2020-03-15 22:42:44 114
原创 volatile
https://blog.csdn.net/tigerjibo/article/details/7427366编译器优化: 由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别...
2020-03-09 21:21:53 88
原创 c语言编译过程
预处理、编译、汇编、链接gcc -E hello.c -o a.cgcc -S hello.c -o a.sgcc -c hello.c -o a.ogcc hello.c -o a对于hello.c文件#include <stdio.h>#include <stdlib.h>#define num 10000int main(){ ...
2020-03-07 20:10:20 177
原创 线程调度
线程是竞争系统资源的最小运行单元。线程可以使用或等待 CPU、使用内存空间等系统资源,并独立于其它线程运行。在任何时刻,只有一个线程得到运行, 调度器决定运行哪个线程。调度器会不断启动、停止每一个线程,宏观看上去所有的线程都在同时在执行。作为线程,不需要对调度器的活动有所了解,在线程切入切出时保存上下文环境(寄存器值、堆栈内容)是调度器主要的职责。每个线程都需要有自己的堆栈。当线程切出时,它的...
2020-03-01 15:30:17 396
原创 线程间通信
信号量(Semaphore)是一种实现线程间通信的机制,实现线程之间同步或临界资源的互斥访问, 常用于协助一组相互竞争的线程来访问临界资源。在多线程系统中,各线程之间需要同步或互斥实现临界资源的保护,信号量功能可以为用户提供这方面的支持。...
2020-02-25 22:27:03 435
原创 二叉树遍历
前序遍历和中序遍历还原二叉树思想如下:a、根据前序遍历结果,第一个元素为二叉树的根结点;b、观察中序遍历结果,根结点左侧的为左子树,若左子树根结点前(后)再无任何元素,则左(右)子树的左分支为空;根结点右侧的为右子树,若右子树根结点前(后)再无任何元素,则左(右)子树的左分支为空;c、上面的过程是递归的。先找到当前树的根结点,然后划分为左右子树,再进入左子树重...
2020-02-25 22:26:22 135
原创 new和malloc的区别
C语言提供了malloc和free两个系统函数,完成对堆内存的申请和释放。而C++则提供了两个关键字new和delete;new/delete是关键字,效率高于malloc和free。配对使用,避免内存泄漏和多重释放。避免交叉使用,比如malloc申请空间delete释放,new出的空间被free。new/delete 主要是用在类对象的申请和释放。申请的时候会调用构造器完成初始化...
2020-02-17 22:21:13 122
原创 c语言中堆和栈的区别
内存中的栈区处于相对较高的地址,以地址的增长方向为上的话,栈地址是向下增长的中分配局部变量空间,堆区是向上增长的用于分配程序员申请的内存空间。另外还有静态区是分配静态变量,全局变量空间的;只读区是分配常量和程序代码空间的;以及其他一些分区。int a = 0; 全局初始化区 char *p1; 全局未初始化区 main() { int b; 栈 char s[]...
2020-02-17 21:54:41 1134
原创 sizeof
sizeof是运算符,是一个编译时运算符,用于判断变量或数据类型的字节大小。可用于获取类、结构、共用体和其他用户自定义数据类型的大小。在判断类型的大小的时候,必须加括号;在判断变量的大小的时候,不需要加括号。int a = 0;sizeof int; //错误,不允许使用类型名cout<<sizeof (int)<<'\n'; //...
2020-02-17 21:34:09 635
原创 const
const关键字用来表示常量,任何修改常量的尝试都会导致编译失败,因此在定义的时候必须进行初始化。const修饰变量表示该变量为常量,不能被修改。默认为文件的局部变量。//file1.c//const int a = 500;//1 会报错extern const int a = 500;//2//main.cextern const int a;int main()...
2020-02-17 21:32:56 90
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人