自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

bruce.zc_wang

学习随笔

  • 博客(81)
  • 资源 (7)
  • 问答 (2)
  • 收藏
  • 关注

原创 wps插入C/C++代码

wps插入C/C++代码1. 下载NppAStyle.dll库2. 解压下载的NppAStyle_bin_0.10.02.14.zip压缩包3. 将NppAStyle.dll库拷贝到Notepad++的插件目录4. 重新打开Notepad++导入NppAStyle插件5. 插件选项设置5. 举例1. 下载NppAStyle.dll库https://sourceforge.net/projects/nppastyle/files/下载如下的bin文件2. 解压下载的NppAStyle_bin_0.

2021-11-12 10:58:52 3937

原创 Ubuntu18.04上编译KylinV10上运行Qt程序遇到的问题

Ubuntu18.04上编译KylinV10上运行Qt程序遇到的问题1. 概述2.解决办法3. Qt 工程文件中修改程序运行时搜索的库目录1. 概述我在Ubuntu18.04上使用Qt5.14.2编译的应用程序,放在KylinV10上运行,发现运行不了。原因是KylinV10上安装的是Qt5.6.1版本,还有就是在KylinV10上的libstdc++版本太低。说明:Ubuntu18.04和KylinV10都是x86架构2.解决办法1. 将在Ubuntu上安装的Qt库拷贝到KylinV10

2021-10-18 17:28:59 625

原创 彻底关闭银河麒麟操作系统防火墙

彻底关闭银河麒麟操作系统防火墙先将登录账户切换到root账户注意使用sudo获取root权限是无法成功执行命令的,必须先使用su命令切换第一次给root账户设置密码:$ sudo passwd root切换到root账户:$ su root2. 执行如下的命令$ iptables-save > /etc/iptables.rules3. 为了开机自动关闭防火墙,将如下命令放在/etc/network/interfaces文件或者/etc/rc.local文件中

2021-10-18 10:29:08 17012 1

原创 Windows系统远程桌面登录Ubuntu21.04

Windows系统远程桌面登录Ubuntu21.041. 概述2. 在Ubuntu操作系统上2.1 安装必要软件2.2 确保Ubuntu的远程桌面共享打开2.3 使用dconf-editor来取消某些权限限制3. 在Windows10系统上3.1 Windowsn自带的mstsc程序远程登录Ubuntu1. 概述我们的主要目的是,在Windows系统上通过远程桌面操作Ubuntu21.04。本文档参考了这篇文章[https://www.cnblogs.com/xuliangxing/p/764265

2021-10-14 17:57:12 1475 2

原创 Linxu桌面应用开机自启动

Linxu桌面用用程序开机自启动1. 开机自启动配置文件2. root账户配置文件3. pi账户配置路径4. 可执行文件路径1. 开机自启动配置文件pi@SOM-RK3399v2:~$ cat ~/.config/autostart/avc.desktop[Desktop Entry]Type=ApplicationName=avcComment=Start audio video captureExec=/usr/local/bin/avcHidden=falseNoDisplay=fa

2021-09-01 14:52:22 258

原创 Windows自带的远程桌面共享工具mstsc

Windows自带的远程桌面共享工具mstsc1. 运行Windows自带的mstsc2. 输入远程IP地址3. 配置“本地资源”4. 然后点击“连接”远程电脑1. 运行Windows自带的mstsc*按"Win + R" 组合键打开“运行”"Win"键就是笔记本电脑上Fn键和Alt之间的那个键,带有微软的图标在输入框输入mstsc,按回车运行这个工具:2. 输入远程IP地址在运行的mstsc界面输入本地计算机要访问的远程桌面的电脑,例如我要访问的远程电脑的IP是192.168.1.22

2021-08-17 16:21:18 16407

原创 在SOM-RK3399上使用QT的QMediaPlayer组件实现的播放器播放视频卡顿的解决办法

在SOM-RK3399上使用QT的QMediaPlayer组件实现的播放器播放视频卡顿的解决办法1. 问题描述1.1 修改之前的avc程序的链接库1.2 现在修改ldconfig配置文件1.3 重新ldd avc1. 问题描述开发用于SOM-RK3399平台上的应用程序,我使用的使交叉编译的方式:在我的笔记本上的Ubuntu18.04上开发,编译,然后将可执行程序再放到NFS服务器目录,在SOM-RK3399上执行。我开发的项目主要功能是:1. 对音频、视频数据的采集;2.将音频数据和视频数据合并成

2021-08-10 18:14:50 1741

原创 container_of的用法

container_of的用法1. container_of的用途说明2. offsetof的定义3. container_of的定义4. 例子4.1 获取预编译文件test.i4.2 container_of宏定义中的“({})”解释1. container_of的用途说明container_of的主要作用是:通过已知的一个数据结构成员指针ptr,数据结构类型type,以及这个成员指针在这个数据结构中的成员名member,来获取指向这个数据结构的指针type *。2. offsetof的定义#

2021-07-14 17:06:46 10378 2

原创 Qt5.14.2移植到SOM-RK3399开发板上的问题解决办法

Qt5.14.2移植到SOM-RK3399开发板上的问题解决办法1. 概述2. 配置Qt5.9.52.1 mkspec配置文件2.2 配置脚本2.3 执行make docs时出现的错误2.3.1 查找"ld-linux-aarch64.so.1"2.4 执行make install_docs安装Qt手册3. 打开QtCreator配置环境(仍然用安装Qt5.14.2时的QCreator)3.1 配置使用的Qt版本(Qt5.9.5)3.2 配置build kits3.3 配置Qt5.9.5的API手册3.4

2021-04-03 19:00:25 740

原创 Qt5.14.2移植到SOM-RK3399开发板

Qt5.14.2移植到SOM-RK3399开发板1. 主机开发环境2. 安装aarch64-linux-gnu-g++交叉编译工具3. 移植Qt3.1 修改Qt源码中的Makefile说明文档目录4. 编译Qt5.14.2源码4.1 创建编译Qt5.14.2源码的影子构建目录4.2 创建并编辑自动配置脚本4.3 执行make编译qt源码4.3 执行make install安装qt5. 确保网络的连通5.1 配置虚拟机网络配置5.2 配置Ubuntu18.04的以太网口的IP5.3 打开Windows系统网络

2021-03-29 20:23:39 1780 1

原创 Python中的异常

Python中的异常1. 概述2. 处理异常2.1 一个except语句只处理一个异常(如ValueError异常)2.2 一个except语句处理多个异常2.3 处理有继承关系的异常类2.3 except通配符处理所有未处理的异常2.4 try ... except 语句可选的 else 子句2.5 try ... except 语句可选的 finally 子句2.6 带参数的异常3. 抛出异常4. 自定义异常类1. 概述使用try…except语句块处理异常。try语句的工作原理是:首先,执

2020-12-09 00:01:49 229

原创 Python中的模块

Python中的模块1. 概述2. 导入模块2.1 导入整个模块的符号名称2.2 导入一个模块中的部分符号名称2.3 使用as关键字给模块命名别名2.4 使用as关键字给模块中的符号命名别名3. 以脚本的方式执行模块4. 模块的搜索路径5. “编译过的”Python文件6. 标准模块7. 内置函数dir()8. 包1. 概述模块是一个包含Python定义和语句的文件。文件名就是模块名后跟文件后缀 .py在一个模块内部,模块名(作为一个字符串)可以通过全局变量 name 的值获得。在一个模块中导入另

2020-12-08 20:37:35 422

原创 Python中的生成器

Python中的生成器1. 概述2. 迭代器和生成器的对比3. 创建生成器的方法3.1 通过生成器表达式来创建生成器3.1 定义的函数通过yiled关键字返回值1. 概述[参考]什么是生成器?或者说什么是生成器对象?个人理解:可以这么理解,生成器对象是专门用来保存一个算法的对象,在后续的代码中可以执行这个生成器(算法)对象来获得自己想要的数据序列,在执行算法之前在内存中只需要有一个能保存这个生成器对象的内存空间即可,但是在调用生成器对象执行算法的过程,每生成一个数据,在内存中就会动态的为生成器重

2020-11-30 22:15:58 315

原创 Python中的迭代器

Python中的迭代器1. 概述2. 自定义一个迭代器3. 内置方法iter()3.1 迭代器的概念3.2 详细理解iter()方法3.2.1 如果没有第二个参数3.2.2 如果有第二个参数1. 概述大多数的容器对象都可以使用for语句进行迭代,如:1. 列表lst = [1, 2, 3]for e in lst: print(e)2. 元组t = (1, 2, 3)for e in t: print(e)3. 字典d = {'one':1, 'two':

2020-11-30 22:15:18 447

原创 Python中的lambda表达式

lambda表达式概述实例演示:不带参数的lambda表达式带参数的lambda表达式带任意参数的lambda表达式使用lambda表达式的好处概述Python中的lambda关键字,可以用来创建一个小的匿名函数,即它的返回值是一个函数对象。lambda函数可以在需要函数的任何地方使用与嵌套函数一样,lambda函数可以引用所包含域的变量lambda函数可以接受任意数量的参数,参数之间使用逗号分隔,但是只能有一个表达式lambda表达式的语法格式lambda [arg1 [, arg2 [

2020-11-24 22:24:58 255

原创 Python映射类型之字典(dict)

Python的字典类型dict概述创建字典的方法在花括号内以逗号分隔的 ==键: 值== 对的方式创建使用字典推导式创建通过dict类的构造器来创建概述字典是一个无序、可变和有索引的集合。字典用花括号编写,拥有键和值。字典的键 几乎 可以是任何值(单不包括列表、字典或其他可变类型的值)数字类型用作键时遵循数字比较的一般规则:如果两个数值相等 (例如 1 和 1.0) 则两者可以被用来索引同一字典条目。(但是请注意,由于计算机对于浮点数存储的只是近似值,因此将其用作字典键是不明智的。)字典可以通

2020-11-22 18:19:53 1634

原创 Python中的装饰器

Python中的装饰器概述语法具有单个装饰器的函数具有多个装饰器的函数装饰器接收参数的函数概述装饰器的概念灵感来源于Java,以特殊字符 @ 开头后跟装饰器的名字装饰器本质上就是一个函数:① 它的返回值是一个可调用的函数对象,这个返回的可调用对象默认会隐式的赋值给这个装饰器所装饰的函数对象,返回的函数对象可以是被装饰的函数对象(在装饰器中对该函数的属性做了某些修改等),也可以是一个新的函数对象,装饰的返回值可以是可调用的函数对象,也可以不是,但一般都是可调用的函数对象。② 它接收它所装饰的函数对

2020-11-22 17:57:59 142

原创 Python函数的函数标注

Python函数的函数标注概述概述函数标注的含义就是对自定义函数的参数,返回值类型明确指示出数据类型。给函数的参数标注数据类型的方式是:在形参名后跟一个冒号":",在冒号后指明形参的类型给函数的返回值标注返回的数据类型的方式是:在函数的参数列表和函数的冒号之间,先指定一个箭头“–>并在箭头后指定函数返回的数据类型“”函数的参数,返回值的标注类型可以通过函数的__annotations__查看如下面的代码中的函数,参数arg0的参数类型是一个列表,arg1,arg2都是字符串str,返回值

2020-11-21 01:07:08 1398

原创 Python中的函数2

Python函数的其他特性位置形参名和关键字形参名冲突位置形参名和关键字形参名冲突如果位置参数和关键字参数名发生冲突,当调用这个函数时会出错def foo(name, **kwds): return 'name' in kwdsprint(foo(1, **{'name':2}))输出:E:\Python3\Exercise\venv\Scripts\python.exe E:/Python3/Exercise/venv/02.pyTraceback (most recent ca

2020-11-21 00:08:57 105

原创 Python中的函数

Python中的函数概述函数的定义函数调用多种形式的函数定义具有形参的函数定义形参具有默认值的函数定义不指定实参,默认全部使用形参默认值指定部分实参,另一部分使用形参默认值给形参全部指定实参,不使用形参默认值通过给形参名赋值的方式传参关键字参数的函数定义关键字参数个数确定的函数形式关键字参数个数不确定的函数形式(**kwarg)任意数据类型传参列表传参元组传参字典传参任意数量的参数传参(*args)*args和**kwargs同时作为函数的参数递归函数pass语句,空函数概述在Python中,使用关键

2020-11-20 23:32:41 248

原创 Python的分支语句if

Python的if语句概述if语句if...elif语句if...elif...else语句单行if语句单行if...else语句有三个条件的单行if...else语句组合条件的if语句and if语句or if语句嵌套if语句pass语句概述Python支持的常用数据逻辑判断条件等于 :a == b不等于 :a != b小于 :a < b小于等于 :a <= b大于 :a > b大于等于 :a >= bif语句a = 66b = 200if

2020-11-20 23:29:08 261

原创 Python的循环语句

Python的循环语句for循环语句for循环用于推导式for循环用于列表推导式for循环用于字典推导式for循环迭代序列的副本for循环遍历字符串break语句跳出for循环continue语句停止当前迭代继续迭代下一个的for循环for循环迭代range产生的序列带else分支语句的for循环嵌套的for循环语句pass语句的for循环while循环语句break语句跳出while循环continue语句继续while循环带else语句的while循环for循环语句Python 中的 for 语句

2020-11-20 23:27:57 238

原创 Python序列类型之Range

Python序列类型之Range概述概述range 类型表示不可变的数字序列。通常用于在 for 循环中循环指定的次数。range是一个类类型,其类定义为:class range(stop)class range(start, stop[, step])range 构造器的参数必须为整数(可以是内置的 int 或任何实现了 index 特殊方法的对象)如果省略 step 参数,其默认值为 1。lst = range(1, 10)print(lst, ' , ', list(ls

2020-11-17 23:55:38 1373 1

原创 Python序列类型之元组(tuple)

序列类型之元组概述创建元组的方法使用圆括号创建一个空元组使用一个带逗号后缀的创建只有一个元素的单元组使用以逗号分隔的多个项创建元组使用内置类tuple的构造器tuple()创建元组概述元组是不可变序列。通常用于储存异构数据的多项集元组也被用于需要同构数据的不可变序列的情况(例如允许存储到 set 或 dict 的实例)。在 Python 中,元组是用圆括号编写的。元组是一个类,器类型定义为:class tuple([iterable])构造器将构造一个元组,其中的项与** itera

2020-11-17 23:54:51 935 1

原创 Python序列类型之列表(List)

序列类型列表(list)创建列表通过索引访问列表元素正索引负索引正索引范围(正切片)负索引范围(负切片)更改列表元素的值更改单个元素更改一个列表元素遍历列表中的元素检查列表中是否存在某一元素列表的常用方法元组(tuple)区间范围(range)列表(list)**列表是一种可更改的有序集合,允许有重复的成员。在Python中列表**通过方括号括起、逗号分隔的一组值(元素)。一个 列表 可以包含不同类型的元素,但通常使用时各个元素类型相同。创建列表lst = ["apple", "banana", "

2020-11-17 23:26:17 1188 1

原创 Python数值类型

Python数字Python有三种数字类型整数(Int)浮点数(float)复数(complex)类型转换运算符“/”运算符"//"运算符“%”运算符"**"运算符"="赋值运算符特殊变量"_"Python有三种数字类型intfloatcomplex例如: 为变量赋值时,将创建数值类型的变量:x = 10 # inty = 6.3 # floatz = 2j # complexprint('x = ' , x, ', y = ', y, ', z = ', z)输出:

2020-11-03 00:10:02 144

原创 Python内置数据类型

Python数据类型内置数据类型字符串类型数值类型序列类型映射类型集合类型布尔类型二进制类型内置数据类型字符串类型str数值类型int, float, complex序列类型list, tuple, range映射类型dict集合类型set, frozenset布尔类型bool二进制类型bytes, bytearray, memoryview字符串类型数值类型序列类型映射类型集合类型布尔类型二进制类型[上一页] [下一页]

2020-11-02 22:48:26 129

原创 Python数据类型之字符串类型

Python字符串类型单行字符串多行字符串字符串是数组裁切字符串正索引负索引单行字符串单行字符串字面量由单引号(’’)或者双引号("")括起。例如:print('Hello, World')print('Hello, World')输出结果:E:\Python3\Exercise\venv\Scripts\python.exe E:/Python3/Exercise/venv/05.pyHello, WorldHello, WorldProcess finished with exi

2020-11-02 22:48:09 2490

原创 Python变量

Python变量创建变量变量的命名规范一行中对多个变量赋不同的值一行中对多个变量赋相同的值全局变量在函数内部使用关键字==global==定义全局变量在函数内部使用关键字==global==引用全局变量创建变量变量是存放数据的容器,和其他编程语言不同,Python不需要为变量声明类型,在为变量赋值时自动确定数据类型。变量的创建是在变量首次赋值时才会被创建。例如:下面代码创建了一个整型变量,一个字符变量,并分别数据变量的类型和变量的值x = 100y = 'hello, world'print(t

2020-10-02 01:44:54 87

原创 Python是什么

Python简介Python是什么?Python能干什么?为什么选择Python?Python可以使用的IDEPython语法和其他语言的比较Python是什么?Python是一门流行的编程语言。它由 Guido van Rossum 创建,于 1991 年发布。它可用于:服务器端的Web开发软件开发系统脚本Python能干什么?可以使用Python在服务器端创建Web应用程序可以使用Python连接数据库系统可以使用Python读/写文件可以使用Python处理大数据并执行复杂

2020-10-02 01:07:23 136

原创 Python简单入门

Python入门Python安装Python的Hello WorldPython安装检查Python是否安装或检查Python的版本如果没有安装,则下载Python下载地址。Python的Hello WorldPython是一门解释型语言,Python的源码文件以py为后缀,可以作为Python解释器的命令行参数直接运行。简单的Python程序,只输出**“Hello,World”**,文件名为helloworld.pyprint('Hello, World')在命令行中运行:参

2020-10-02 01:07:04 85

原创 Python代码中的注释方法

Python中的注释单行注释多行注释单行注释单行注释使用**#**号进行注释# hello world多行注释Python实际上没有多行注释的语法。由于 Python 将忽略未分配给变量的字符串文字,因此您可以在代码中添加多行字符串(三引号),并在其中添加注释。"""hello, world"""'''hello, world'''...

2020-10-02 01:04:38 1816

原创 Linux内核链接脚本之设置架构

03_OUTPUT_ARCHhttp://ftp.gnu.org/old-gnu/Manuals/ld-2.9.1/html_mono/ld.html#IDX345OUTPUT_ARCH ( bfdname ):指定一个机器架构。如在U-Boot的链接脚本中:OUTPUT_ARCH(arm)

2019-09-04 18:00:31 132

原创 Linux内和链接脚本之设置输出的Linux二进制内核的格式

02_OUTPUT_FORMATOUTPUT_FORMAT ( bfdname ):指定输出文件的格式。注意:链接器访问.o文件和文档文件使用BFD库。BFD:Binary format descriptor, 即二进制文件格式描述符如在u-boot.lds链接脚本中指定的输出文件格式:OUTPUT_FORMAT(“elf32-littlearm”, “elf32-littlear...

2019-09-04 17:59:17 229

原创 Linux内核的连接脚本之设置内核的入口地址

01_ENTRYhttp://ftp.gnu.org/old-gnu/Manuals/ld-2.9.1/html_mono/ld.html#IDX322ENTRY(symbol):在链接脚本中,指定第一个要执行的指令。例如,在U-Boot中的链接脚本中,指定:u-boot-1.1.6\board\100ask24x0\u-boot.ldsENTRY(_start)_start是在st...

2019-09-04 17:57:57 453

原创 如何在C代码中使用内联汇编之明确的寄存器变量

明确的寄存器变量GNU C允许您将特定的硬件寄存器与C变量关联起来。在几乎所有情况下,允许编译器分配寄存器都会生成最好的代码。然而,在某些不寻常的情况下,需要对变量存储进行更精确的控制。全局变量和局部变量都可以与寄存器关联。全局寄存器变量你可以定义一个全局寄存器变量,并将它与一个指定的寄存器相关联,如下所示:register int *foo asm (“r12”);r12是寄存器名。...

2019-09-04 17:55:30 1025

原创 如何在C代码中使用内联汇编之控制在汇编代码中要使用的名称

控制在汇编代码中要使用的名称可以通过在声明符后面写asm(或_asm__)关键字来指定C函数或变量的汇编代码中要使用的名称。你可以确保所选择的汇编程序名称不会与任何其他汇编程序符号或引用寄存器发生冲突。数据的汇编名称:这个示例演示了如何为数据指定汇编器名称:int foo asm (“myfoo”) = 2;这指定在汇编代码中用于变量foo的名称应该是’ myfoo ‘而不是通常的’ ...

2019-09-04 17:53:13 156

原创 如何在C代码中使用内联汇编之asm操作数的约束

asm操作数的约束约束可以说明操作数是否在寄存器中可以说明寄存器的类型可以说明操作数是否可以作为内存引用可以说明操作数地址的种类可以说明操作数是否是立即数,可以说明操作数可能具有哪些值。也可以说明要求两个操作数匹配。内联asm的操作数中不允许有副作用如果使用了’ < ‘或’ > '约束,就有可能有副作用,因为不能保证副作用在可以更新寻址寄存器的指令中只发生一次。•...

2019-09-04 17:51:02 994

原创 如何在C代码中使用内联汇编之带有C表达式操作数的汇编指令

扩展的asm----带有C表达式操作数的汇编指令扩展的asm语句语法格式:#语法1:asm asm-qualifiers ( AssemblerTemplate: OutputOperands[ : InputOperands[ : Clobbers ] ])#语法2:asm asm-qualifiers ( AssemblerTemplate:: InputOperands...

2019-09-04 17:48:41 411

原创 如何在C代码中使用内联汇编之汇编指令模板

汇编指令模板汇编模板:汇编程序模板是包含汇编程序指令的文本字符串。编译器替换模板中引用输入、输出和goto标签的标记,然后将生成的字符串输出给汇编程序。字符串可以包含汇编程序识别的任何指令,包括指示符。GCC不分析汇编程序指令本身,也不知道它们的含义,甚至不知道它们是否是有效的汇编程序输入。可以将多个汇编程序指令放在一个asm字符串中,由系统汇编代码中通常使用的字符分隔。在大多数地方...

2019-09-04 17:45:44 571

K9F1208_datasheet.pdf

该文档是一个64MByte的Nand Flash芯片手册,该手册详细描述了Nand Flash的各种时序,pin脚以及读写擦除等的操作

2019-09-04

I2C总线协议中文版.pdf

该文档介绍了I2C总线,是中文文档,非英文文档,对于看英文文档头大的读者是一个不错的选择

2019-09-04

DDI0487E_a_armv8_arm.pdf

ARMV8芯片手册,该芯片手册是从ARM官网下载的,里面详细介绍的ARM处理的7种异常模式,以及ARM架构的指令集

2019-09-04

Linux C编程

Linux 下C语言学习,C语言本质,C编程一站式学习

2013-01-08

C语言深度解剖

摆脱C语言陷进 深度解剖 让你真正了解C语言

2012-12-20

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除