【Linux development knowledge】
文章平均质量分 78
种瓜大爷
Graphics Stack:Linux Openharmony Android
PKS体系深度耕耘者,为国产化奉献一份力量!
展开
-
Ubuntu16.04系统下汉字显示为方框解决办法
学习于: https://www.cnblogs.com/zlslch/p/6971112.html问题详情:问题分析:今天一打开Ubuntu系统,竟然不支持中文显示了。开始时以为是中文输入法的问题,后面重装了也不行。然后我就一直在网上搜“Ubuntu系统不支持中文”,“Ubuntu系统中文显示乱码”等问题,殊不知已经查找错了方向。直到看到一篇帖子说这不是中文乱码或者...原创 2018-10-10 11:45:19 · 7615 阅读 · 0 评论 -
自己实现printf函数
在嵌入式开发中,常常会通过串口打印一些信息到PC终端,这就需要实现自己的printf函数。我们先通过man 3 printf来看一下printf函数的声明: int printf(const char *format, ...); format:固定参数 … :可变参数(变参)下面解析printf函数的使用: x86平台VC6.0编译器中,stdarg.h头文件内变参宏定义如下,本次原创 2017-12-13 22:39:42 · 5002 阅读 · 1 评论 -
链接脚本使用AT加载地址的总结
(一)如果不使用AT这个选项,比如下边这个连接脚本 此时在bin文件里的位置就是烧写到某个地址(比如0地址),然后顺着往下排,具体在文件哪个地址不确定。但在ELF文件里,它的地址信息是从0x30000000开始 <—-> 在bin文件的位置那个地址和elf中的地址信息不一样(二)如果使用AT这个选项,比如下边这个连接脚本 此时main.o在bin文件里的位置在4096(4096之前未使用的原创 2017-12-11 11:05:33 · 6879 阅读 · 1 评论 -
Linux dd命令详解
busybox dd if=/dev/zero of=/dev/block/mmcblk0 bs=512 seek=1 count=1 conv=sync解释:f=/dev/zero:输入文件名为/dev/zeroof=/dev/mmcblk0:输出文件名为/dev/mmcblk0bs=512:读块和写块的大小都为512B(这里的输出文件为一个块设备,块大小的设置跟块设备中每块的大小相关)seek=1:跳过第一个块count:只拷贝一个块conv:若读取的输入块不足512B,那么不足的部分填充原创 2017-11-22 20:42:40 · 16800 阅读 · 0 评论 -
用SD卡传文件到JZ2440
主机开发环境: Ubuntu9.10 内核: Linux2.6.22.6(资料光盘-> systems目录) 文件系统: fs_qtopia.yaffs2(资料光盘->bin目录) 开发板:JZ2440目的:通过SD卡传文件到开发板 其实很简单,就一条挂载命令,为了适应0基础刚入手开发板的同学,写的特别详细。步骤: 1. JZ2440接上电源,按红色开关启动系统 2. 电脑原创 2017-08-11 23:31:04 · 1044 阅读 · 0 评论 -
C代码中如何使用链接脚本中定义的变量
原文内容:http://www.100ask.org/bbs/forum.php?mod=viewthread&tid=16231&page=1&authorid=2---------------------------------------------------------------------------------------------------------------------原创 2017-11-14 21:45:21 · 4521 阅读 · 0 评论 -
C中使用汇编定义的字符串
官方文档① .ascii "string"... .ascii expects zero or more string literals (see section Strings) separated by commas. It assembles each string (with no automatic trailing zero byte) into consecutive addres原创 2017-11-28 22:38:18 · 3623 阅读 · 0 评论 -
.word说明
官方定义.word expressions举例说明:_rWTCON: .word 0x19970208就是在当前地址,即_rWTCON处放一个值0x19970208 类似于C语言:*(_rWTCON) = 0x19970208原创 2017-11-28 17:34:32 · 442 阅读 · 0 评论 -
TTL电平、COMS电平、232电平、USB电平的区别与转换方法
TTL电平、COMS电平、232电平、USB电平的区别与转换方法一、电平信号的主要特性电平 输入 输出特点 高低高低TTL大于2.0小于1.2V大于2.4V小于0.8V所有的主控制芯片引脚(包括串口的RX,TX,普通IO口)都是TTL电平,TTL拥有较低的噪声容限①CMOS大于0.7VCC小于0.3VCC大于0.9VCC小于0.1VCC比TTL的噪声容限高 逻辑1逻辑0 232-原创 2017-10-24 20:32:12 · 8281 阅读 · 1 评论 -
gcc程序的编译过程和链接原理
一、C/C++文件的编译过程:先来看一下gcc的使用方法和常用选项 提示:gcc --helpⅠ、使用方法:gcc [选项] 文件名Ⅱ、常用选项: 选项 含义 -v 查看gcc编译器的版本,显示gcc执行时的详细过程 -o <file> Place the output into <file>;指定输出文件名为file,这个名称不能跟源文件名同名 -E Pr原创 2017-10-24 17:02:07 · 41303 阅读 · 4 评论 -
理解ARM中断原理以及中断嵌套
学习于韦东山ARM有七种模式,我们这里值讨论SVC、IRQ和FIQ模式 usr(用户模式)、fiq(快速中断模式)、irq(中断模式)、svc(管理模式)、abt(数据访问终止模式)、sys(系统模式)、und(未定义指令中止模式)① 我们假设ARM核心有两根中断引脚(实际上是看不见的),一根叫irq pin,一根叫fiq pin。在ARM的cpsr中,有一个I位和一个F位,分别用来禁止IR原创 2017-10-14 11:50:16 · 3145 阅读 · 0 评论 -
嵌入式Linux开发常用命令总结
1.打开pc服务:win+r-> services.msc 2.将命令输入到文件以后:echo "ifconfig eth0 192.168.2.3" >> /etc/init.d/rcS 3.虚拟机挂载到开发板根文件系统:mount -t nfs -o nolock 192.168.2.3:/work/nfs_root/test /mnt 4.putty的复制粘贴鼠标左键-复制 鼠原创 2017-09-13 22:33:22 · 2834 阅读 · 0 评论 -
linux 目标文件(*.o) bss,data,text,rodata,堆,栈
学习于:http://blog.csdn.net/sunny04/article/details/40627311linux目标文件一个简单的程序被编译成目标文件后的结构如下:注:初始化为0在此文章中表示为未初始化,后面不再重复!!!特此标出。从图可以看出,已初始化的全局变量和局部静态变量保存在 .data段中,未初始化的全局变量和未初始化的局部静态变量保存在 .bss段中。验证代码如下:/***原创 2017-11-08 19:28:54 · 1964 阅读 · 0 评论 -
Makefile中=与:=的区别
我先来总结一下:① 如果y = $(x),那么取x最后一次被赋值的值(不管最后赋值方式是”:=”还是”=”)② 如果y := $(x),那么取x上一次被赋值的值(不管最后赋值方式是”:=”还是”=”)下面用八个例子来证明: 官方的定义太官方了,大家可以直接举例证明容易理解。①:x = czgy = $(x)x = xyzall: @echo y = $(y) 结果: y =原创 2017-10-30 22:45:00 · 724 阅读 · 0 评论 -
s3c2440_soc.h
S3C2440所有芯片配置寄存器,学习此方法。/*制 作:www.100ask.org深圳百问网科技有限公司工程师:韦东山当前版本:v1.0*/#ifndef __S3C2440_SOC_H#define __S3C2440_SOC_H#define __REG(x) (*(volatile unsigned int *)(x))原创 2017-10-17 21:50:40 · 1076 阅读 · 0 评论 -
使用gcc中的__attribute__指定字节对齐
在x86(32位机器)平台下,GCC编译器默认按4字节对齐:如:结构体4字节对齐,即结构体成员变量所在的内存地址是4的整数倍。可以通过使用gcc中的_attribute_选项来设置指定的对齐大小① attribute((packed)),让所作用的结构体取消在编译过程中的优化对齐,按照实际占用字节数进行对齐 ② attribute((aligned (n))),让所作用的结构体成员对齐在n字节边原创 2017-12-14 12:10:47 · 5233 阅读 · 0 评论 -
malloc()和mmap()
malloc(): 调用malloc()时,是在PCB表(进程表)结构中的堆重点内容中申请空间,若申请空间失败,即超过给定的堆最大空间时,将会调用brk()系统调用,将堆空间向未使用的区域扩展,brk()之后新增的堆空间不会自动清除,需使用相应的系统调用来清除; mmap(): 调用mmap()系统调用使得进程之间通过映射同一个普通文件实现共享内存。普通文件被映射到进程地址空间后,进程可以原创 2018-03-19 10:27:37 · 7007 阅读 · 0 评论 -
Linux内核目录和常用头文件的含义
学习于http://www.xuebuyuan.com/755188.html一、linux内核目录 -(2.6内核)① arch目录:包括了所有和体系结构相关的核心代码。它下面的每一个子目录都代表一种Linux支持的体系结构,例如i386就是Intel CPU及与之相兼容体系结构的子目录。PC机一般都基于此目录。② include目录:包括编译核心所需要的大部分头...原创 2018-03-21 14:30:01 · 3543 阅读 · 0 评论 -
#ifdef #else #endif #fi #ifndef 的用法
预处理就是在进行编译的第一遍词法扫描和语法分析之前所作的工作。说白了,就是对源文件进行编译前,先对预处理部分进行处理,然后对处理后的代码进行编译。这样做的好处是,经过处理后的代码,将会变的很精短。关于预处理命令中的文件包含(#include),宏定义(#define),书上已经有了详细的说明,在这里就不详述了。这里主要是对条件编译(#ifdef,#else,#endif,#if等)进行说明。...原创 2018-08-31 21:38:36 · 2631 阅读 · 0 评论 -
关于WiFi必须了解的基础知识
学习于百问科技 自从只需少量的话费就可以将笔记本、平板电脑连接到互联网,WiFi已成为我们熟知的网络,并无处不在。Wi-Fi对于一些物联网应用十分有用,比如楼宇自动化、内部能源管理。WiFi的重要性对于我们的日常生活和某些物联网应用不言而喻。WiFi 的发源地是夏威夷至少我们可以说,对于WiFi概念最早的尝试是在夏威夷发生的。ALOHANET是一个在夏威夷大学开发的计算机网络系...原创 2018-08-31 21:32:46 · 5430 阅读 · 1 评论 -
【基础】16进制乘除
和10进制一样 不过逢16进1。原创 2018-06-28 22:19:17 · 11094 阅读 · 3 评论 -
【基础】volatile unsigned int * a和 (volatile unsigned int *) a
错误: (volatile unsigned int *)pGPFCON = (volatile unsigned int *)0x56000050; (volatile unsigned int *)pGPFDAT = (volatile unsigned int *)0x56000054;(int*)a将指针变量a强制类型转换为整型指针,一般不放在等号左边in...原创 2018-07-04 10:39:04 · 1780 阅读 · 0 评论 -
【基础】.text .global _start和_start
学习于simanstar的博客! ① .text.text部分是处理器开始执行代码的地方,指定了后续编译出来的内容放在代码段【可执行】 arm-linux-gcc编译器的关键词② .global.global关键字用来让一个符号对链接器可见,可以供其他链接对象模块使用;告诉编译器后续跟的是一个全局可见的名字【变量/函数名】.global _start让_...原创 2018-06-26 17:10:36 · 5951 阅读 · 0 评论 -
Ubuntu 16.04 几个国内更新源
学习于bovenson博客,感谢。 一般来说ubuntu官方的软件仓库由于服务器在国外,下载更新速度较慢或者由于安装的软件版本比较新,需要将软件仓库更换为国内镜像点。 eg: 正在读取软件包列表… 完成 正在分析软件包的依赖关系树 正在读取状态信息… 完成 有一些软件包无法被安装。如果您用的是不稳定(unstable)发行...原创 2018-06-29 21:01:16 · 1994 阅读 · 0 评论 -
unbuntu16.04解决无法获得锁问题
终端提示:E:无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?解决:sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock 一次不行多来几次!!!...原创 2018-05-24 15:28:38 · 4201 阅读 · 2 评论 -
Ubuntu软件仓库源(16.04正版源)
#deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to# newer versions of the dis...原创 2018-05-24 15:22:40 · 3927 阅读 · 1 评论 -
Ubuntu第三方软件仓库源(国内源)
一般来说ubuntu官方的软件仓库由于服务器在国外,下载更新速度较慢,需要将软件仓库更换为国内镜像点。1、修改源配置文件 ① 先备份原来的配置文件mv /etc/apt/sources.list /etc/apt/sources.list.bak vim /etc/apt/sources.list ② 将国内的Ubuntu镜像点添加到配置文件Ubuntu 1...原创 2018-05-24 13:14:25 · 23198 阅读 · 0 评论 -
如何让虚拟机的Ubuntu上网?
学习于韦工百问科技-悦己方能悦人,感谢!我的环境:unbuntu16.04 特别注意:如果你使用的虚拟机和Ubuntu不一样,现象可能不一样,请具体情况具体分析。一、为什么要让虚拟机中的Ubuntu上网?想在线安装软件,下载git源码包,或者要用浏览器浏览网页二、虚拟机中的Ubuntu有几种上网方式?通常有2种,NAT、桥接三、NAT上网怎么用...原创 2018-04-02 15:17:53 · 83140 阅读 · 13 评论 -
FRAMEBUFFER 显示原理及RGB显示
framebuffer / 像素深度 / 颜色深度 / RGB5651, framebuffer相关的. framebuffer的可变的信息就是指Framebuffer的长度、宽度以及颜色深度等信息。这两个命令字相关的结构体有两个:struct fb_fix_screeninfo和struct fb_var_screeninfo,这两个结构体都比较大,前者用于保存Framebuffer设备的原创 2018-03-26 15:20:41 · 6428 阅读 · 1 评论 -
Source insight使用技巧
source insight下载<里面有汉化过程和我的两种配色方案>① Source insight创建文件打开SI,选择Project -> Newprojice ②source insight 工程窗口的嵌入停靠通常来说,对于那些子窗口,当我们用鼠标拖拽窗口接近软件边沿的时候,一般的软件都有自动停靠功能。但是在source ins...原创 2018-03-22 09:51:49 · 3845 阅读 · 0 评论 -
编译内核 mkimage command not found – U-Boot images will not be built
环境:unbuntu16.04系统:linux 3.4.2错误提示:mkimage” command not found – U-Boot images will not be built 按照以往经验,我们需要安装依赖包: sudo apt-get install uboot-mkimage但却提示”现在没有可用的软件包 uboot-mkimage,但是它被其...原创 2018-03-21 20:44:00 · 613 阅读 · 0 评论 -
Can't use 'defined(@array)'
编译64位内核kernel/timeconst.pl问题解决 Can’t use ‘defined(@array)’ (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373. 不能在kernel / timeconst.pl行373使用’defined(@array)’(也许你应该省略...原创 2018-03-21 20:30:27 · 2357 阅读 · 1 评论 -
Linux头文件 C/C++头文件
转自于:http://blog.csdn.net/wubin1124/article/details/4971359-------------------------linux常用头文件如下:POSIX标准定义的头文件 目录项 文件控制 文件名匹配类型 路径名模式匹配类型 组文件 网络数据库操作 口令文件 正则表达式原创 2018-03-21 15:05:44 · 1139 阅读 · 1 评论 -
【实战】ping
环境介绍笔记本连接学校wifi,开发板通过有限插入笔记本。 如果不是这种情况的,请点我进入电脑 开发板 虚拟机三者互ping通教程。达到效果:开发板、linux、pc互ping通且pc能上网。但是这种情况虚拟机不能上网,要想上网后面会介绍。 环境 IP 网关 192.168.2.1 PC 192.168.2.2 虚拟机 192.168.2.3 开发板-uboo原创 2017-08-06 16:28:19 · 3966 阅读 · 0 评论 -
CPSR_cxsf 详解
1: ARM每种工作模式除R0~R15共16个寄存器外,还有第17个寄存器CPSR,叫做 当前程序状态寄存器,CPSR中一些位被用于标识各种状态,一些位被用于标识当前出于什么工作模式。2:这个状态寄存器的32位可以分为四个原创 2016-12-08 16:39:25 · 4896 阅读 · 0 评论 -
安装挂科-guake
安装挂科(guake)安装guakesudo add-apt-repository ppa:webupd8team/unstable sudo apt-get update sudo apt-get install guake设置guake为默认终端:sudo update-alternatives --config x-terminal-emulator 输入guake所在序号`原创 2017-06-04 12:43:48 · 1170 阅读 · 0 评论 -
利用Oh-My-Zsh打造你的超级终端
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼分享一个大神朋友的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!点击浏览教程。写得特别用心喔~→→→→→→大神朋友简介:从事十几年人工智能研究,麻省理工博士学位,目前在百度继续进行着人工智能的研究。。。▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲...原创 2017-06-04 12:29:42 · 73218 阅读 · 6 评论 -
unbuntu16.04桌面美化
安装unity-tweak-toolFlatabulous主题安装oh-my-zsh字体原创 2017-06-04 11:33:42 · 1572 阅读 · 0 评论 -
谈谈自定义头文件
在一个大的软件工程里面,可能会有多个文件同时包含一个头文件,当这些文件编译链接成一个可执行文件时,就会出现大量“重定义”的错误。在头文件中实用#ifndef #define #endif能避免头文件的重定义。 方法:例如要编写头文件test.h 在头文件开头写上两行: #ifndef _TEST_H #define _TEST_H//一般是文件名的大写 头文件结尾写上一行:#endif原创 2017-03-09 12:22:22 · 2001 阅读 · 0 评论 -
谈谈#define xxxx(x,y) x##y
先看一个例子:#define czg(x,y) x##yczg(love,9728)=? 答案:love9728 ## 被称为连接符,用来将两个宏参数连接为一个宏参数。 再看:#define czg(x) #@xczg(3)=? 答案:’3’ #@其实就是给x加上单引号 但是如果你的测试参数超过四个原创 2017-06-04 19:34:55 · 8222 阅读 · 0 评论