初始化

3、将uboot,kernel,rootfs下载到开发板上

心不动则不痛 提交于 2020-03-09 19:05:47
将uboot,kernel,rootfs下载到开发板上 1、为什么要下载 所谓下载,也称烧录,部署。 1.1、什么是u-boot Hi3518EV200 单板的 Bootloader 采用 U-boot。 u-boot是一种普遍用于嵌入式系统中的Bootloader,Bootloader是在操作系统运行之前执行的一小段程序,通过它,我们可以初始化硬件设备、建立内存空间的映射表,从而建立适当的软硬件环境,为最终调用操作系统内核做好准备。Boot Loader的主要运行任务就是将内核映象从硬盘上读到RAM中,然后跳转到内核的入口点去运行,即开始启动操作系统。系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的Boot Loader程序。 1.2、什么是kernel 烧录完uboot之后,开始烧录kernel。Kerne是指大多数操作系统的核心部分。它由操作系统中用于管理存储器、文件、外设和系统资源的那些部分组成。操作系统内核通常运行进程,并提供进程间的通信。操作系统必须要以内核为基础运行,内核提供最基本的对计算机的操作,并且让计算机底层尽量安全和容易管理。 1.3、 什么是rootfs 根文件系统是内核启动时所mount的第一个文件系统,内核代码映像文件保存在根文件系统中

GitHub之初始化

拈花ヽ惹草 提交于 2020-03-09 18:57:46
1、github上新建repository。 2、本地 mkdir git-init-demo。 3、cd git-init-demo。 4、git clone https://github.com/组织名/git-init-demo.git。 5、 mv * .[^.]* ../ 。 6、git add . 。 7、git commit -m 'init'。 8、git push origin master。 ------------------------------------------------------------------------ git 常用命令 git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支 git branch -r 查看远程所有分支 git commit -am "init" 提交并且加注释 git remote add origin git@192.168.1.119:ndshow git push origin master 将文件给推到服务器上 git remote show origin 显示远程库origin里的资源 git push origin master:develop git push origin master:hb-dev

C# ref引用参数与out输出参数的使用与区别

帅比萌擦擦* 提交于 2020-03-09 17:18:12
日期:2020.03.09 15:58 1、传递到ref参数的实参参数必须先初始化,方法内也可该值 2、传递至out参数的实参可以不初始化,因为即使初始化实参,out方法中也无法取得该值,但在方法中必须初始化(即使参数不被使用) 3、无法同时使用ref和out方法,不可以同时重载 4、一个方法中可以同时使用多个Ref或Out 总结: ref:是传入值 但是在经历ref方法后,会改变传入的值,侧重修改->有进有出; out:保证每一个传出变量都必须被赋值,完全侧重在输出->只出不进; 来源: https://www.cnblogs.com/OnlyInsist/archive/2020/03/09/12449266.html

git 初始化

女生的网名这么多〃 提交于 2020-03-09 15:20:37
Git 全局设置 git config --global user.name "****" git config --global user.email "******" 创建一个新仓库 git clone git@192.168.5.25:test01/dadadads.git cd dadadads touch README.md git add README.md git commit -m "add README" git push -u origin master 推送现有文件夹 cd existing_folder git init git remote add origin git@192.168.5.25:test01/dadadads.git git add . git commit -m "Initial commit" git push -u origin master 推送现有的 Git 仓库 cd existing_repo git remote rename origin old-origin git remote add origin git@192.168.5.25:test01/dadadads.git git push -u origin --all git push -u origin --tags 来源: oschina 链接: https:

c++构造函数的作用---13

人走茶凉 提交于 2020-03-09 12:25:54
原创博客:转载请标明出处:http://www.cnblogs.com/zxouxuewei/ http://blog.csdn.net/tidyjiang/article/details/52073671 一、 构造函数是干什么的 class Counter { public: // 类Counter的构造函数 // 特点:以类名作为函数名,无返回类型 Counter() { m_value = 0; } private: // 数据成员 int m_value; } 该类对象被创建时,编译系统对象分配内存空间, 并自动调用该构造函数->由构造函数完成成员的初始化工作 eg: Counter c1; 编译系统为对象c1的每个数据成员(m_value)分配内存空间,并调用构造函数Counter( )自动地初始化对象c1的m_value值设置为0 故: 构造函数的作用:初始化对象的数据成员。 二、 构造函数的种类 class Complex { private : double m_real; double m_imag; public: // 无参数构造函数 // 如果创建一个类你没有写任何构造函数,则系统会自动生成默认的无参构造函数,函数为空,什么都不做 // 只要你写了一个下面的某一种构造函数,系统就不会再自动生成这样一个默认的构造函数,如果希望有一个这样的无参构造函数

Python调用大华SDK取图

谁说胖子不能爱 提交于 2020-03-09 11:20:20
之前写了一个大华SDK取图程序,中间遇见很多问题,查找解决办法的时候发现网上关于大华SDK的调用,用Python写的少得可怜,基本没有。记录一下开发中遇见的问题和解决办法。 业务场景是识别人脸到人脸的时候保存背景图和人脸图。根据开发文档,流程为初始化SDK,登录设备,订阅智能事件,在智能事件回调函数中可以取到需要的图片信息。 声明函数调用 python调用C语言函数,需要先声明函数及函数返回值类型参数类型,下面以SDK初始化及设备登录函数举例。 SDK初始化第一个参数为回调函数。需要根据文档先注册回调函数。 Init_Callback = CFUNCTYPE(c_void_p,c_longlong,c_char_p,c_long,c_ulonglong) CFUNCTYPE()第一个参数为返回值类型,后面依次为参数类型 然后声明函数调用及返回值类型和参数类型 CLIENT_Init = NetSDK_dll.CLIENT_InitCLIENT_Init.restype = c_boolCLIENT_Init.argtypes = (Init_Callback,c_ulonglong) 设备登录函数前几个参数传递方式是input,后两个是output,实际调用传参需要通过byref方式,声明的时候需要声明为POINTER指针 CLIENT_LoginEx2 = NetSDK_dll

C++直接初始化,拷贝初始化,调用哪个构造函数?

浪子不回头ぞ 提交于 2020-03-09 09:46:30
很多C++新手不明白直接初始化、拷贝初始化,不清楚初始化过程中使用哪个构造函数。在学习过程中,要有基本概念,并且养成正确的认识也是非常重要的。因此整理了本文。 常见错误认识1: 1.使用()和使用=定义对象没什么区别。(直接初始化、拷贝初始化。) 2.直接初始化使用构造函数。(错,也可能使用拷贝构造函数。) 3.拷贝初始化使用拷贝构造函数。(错,也能使用构造函数。) 直接初始化 如果有一个新对象被定义(即创建了新对象),一定有构造函数被调用。 使用直接初始化时,我们实际上要求编译器使用普通的函数匹配,来提供参数最匹配的构造函数。因此直接初始化可能使用构造函数,也可能使用拷贝构造函数。 简单理解,用()来定义对象的就为直接初始化。 拷贝初始化 按字面意思理解即可,将一个对象给另一个对象初始化。 简单理解,用=定义对象的就为拷贝初始化。 注意: 拷贝赋值运算符也用在=的情况下,但是在对象已经创建并存在的情况下,只是修改对象的值而已。 而用=拷贝初始化是发生在定义一个对象的情况下,即对象此前尚未存在。 类定义如下: # include <string> # include <iostream> class Book { public : Book ( ) = default ; Book ( std :: string s ) : name ( s ) { std :: cout <<

java中5种常见的异常(Exception)

随声附和 提交于 2020-03-09 09:11:11
Java.lang.NullPointerException 这个异常大家肯定都经常碰到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初始化和数组元素的初始化混淆起来了。数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,所以还需要对每个元素都进行初始化(假如要调用的话) 2. java.lang.ClassNotFoundException 这个异常是很多原本在JB等开发环境中开发的程序员,把JB下的程序包放在WTk下编译经常出现的问题,异常的解释是"指定的类不存在",这里主要考虑一下类的名称和路径是否正确即可,假如是在JB下做的程序包,一般都是默认加上Package的,所以转到WTK下后要注重把Package的路径加上。 3. java.lang.ArithmeticException 这个异常的解释是"数学运算异常",比如程序中出现了除以零这样的运算就会出这样的异常,对这种异常,大家就要好好检查一下自己程序中涉及到数学运算的地方,公式是不是有不妥了。 4. java.lang

东西有点乱

半世苍凉 提交于 2020-03-09 07:51:08
Java中主要同步机制是关键字synchronized,它提供了一种独占的加锁方式,但同步这个术语还包括volatile类型的变量,显式锁和原子变量。 如果多个线程访问同一个可变的状态变量时没有使用合适的同步,那么程序就会出现错误。有三种方式可以修复这个问题: 不在线程之间共享该状态变量 将状态变量修改为不可变的变量 在访问状态变量时使用同步 在线程安全类中封装了必要的同步机制,因此客户端无须进一步采取同步机制。 无状态对象一定是线程安全的。 大多数Servlet都是无状态的,从而极大地降低了在实现Servlet线程安全性时的复杂性。只有当Servlet在处理请求时需要保存一些信息,线程安全性才会成为一个问题。 在并发编程中,这种由于不恰当的执行时序而出现不正确的结果是一种非常重要的情况,它有一个正式的名字:竞态条件。 最常见的竞态条件类型就是“先检查后执行”操作,即通过一个可能失效的观测结果来决定下一步的动作。 使用“先检查后执行”的一种常见情况就是延迟初始化。延迟初始化的目的是将对象的初始化操作推迟到实际被使用时才进行,同时要确保只被初始化一次。 为了确保线程安全性,“先检查后执行”(例如延迟初始化)和“读取-修改-写入”(例如递增操作)等操作必须是原子的。我们将“先检查后执行”以及“读取-修改-写入” 等操作统称为复合操作:包含了一组必须以原子方式执行的操作以确保线程安全性。

Tomcat提示:java.lang.NullPointerException

大憨熊 提交于 2020-03-09 07:44:26
使用了空的指针。在java中虽然号称抛弃了C++中不安全的指针,但其实他所有的东西你都可以理解为指针。这种情况一般发生在你使用了一个对象实例(其实是一个类指针)来调用它的成员函数,但这个实例却为null。 建议先检查一下SQL是不是有问题,然后看逻辑是不是有问题 主要有以下几种原因: 1、使用了未初始化的变量(虽然已经声明) 2、使用了未初始化的对象(虽然已经声明) 3,使用了关键字或已存在的类名作变量对象方法或类名。 一般报java.lang.NullPointerException的原因有以下几种: 1字符串变量未初始化; 2接口类型的对象没有用具体的类初始化,比如: List lt;会报错 List lt = new ArrayList();则不会报错了 3当一个对象的值为空时,你没有判断为空的情况。 你可以试着把下面的代码前加一行代码: if(rb!=null && rb!="") 改成: if(rb==null); if(rb!==null&&rb!="") 来源: https://www.cnblogs.com/mingal/archive/2008/01/08/1031011.html