【Linux development knowledge】
文章平均质量分 78
种瓜大爷
Graphics Stack:Linux Openharmony Android
PKS体系深度耕耘者,为国产化奉献一份力量!
展开
-
C语言位操作
此文将花费您8~15分钟时间,带您对嵌入式中常用的位操作有个了解。和数字电路有点相似!感谢阅读!位操作符1.位与&1、注意:位与符号是一个&,两个&&是逻辑与。2、真值表:1&0=0 1&1=1 0&0=0 0&1=03、从真值表可以看出:位与操作的特点是,只有1和1位与结果为1,其余全是0.4、位与和逻辑与的区别:位与时两个操作数是按照二进制位彼次对应位相与的,逻辑与是两个操作数作为整体来相与的。(举例:0xAA&0xF0=0xA0,0xAA && 0xF0=1) 2.位或|1、注意:位原创 2017-06-04 16:51:00 · 8992 阅读 · 3 评论 -
基于VC6.0恶搞小程序
基于VC6.0恶搞小程序原创 2017-06-04 15:56:47 · 7178 阅读 · 0 评论 -
典型C内存空间分布图
典型C内存空间分布图bss段,data段,代码段(.text),堆(heap),栈(stack)原创 2017-02-05 20:27:45 · 8446 阅读 · 0 评论 -
深入谈谈整型、浮点型在内存中的存储方式
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼分享一个大神朋友的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!点击浏览教程。写得特别用心喔~→→→→→→大神朋友简介:从事十几年人工智能研究,麻省理工博士学位,目前在百度继续进行着人工智能的研究。。。▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲...原创 2016-12-02 13:41:41 · 6035 阅读 · 0 评论 -
小谈指针
渗透前,看山是山,看水是水;渗透时,看山不是山,看水不是水;渗透后,看山还是山,看水还是水。指针到底是什么?1.指针变量和普通变量的区别首先必须非常明确:指针的实质就是个变量,它跟普通变量没有任何本质区别。指针完整的名字应该叫指针变量,简称为指针。2.为什么需要指针?(1)指针的出现是为了实现间接访问。在汇编中都有间接访问,其实就是CPU的寻址方式中的间接寻址。(2)间接访问(CP原创 2016-11-06 16:48:19 · 1387 阅读 · 5 评论 -
C语言和内存初步框架了解
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼分享一个大神朋友的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!点击浏览教程。写得特别用心喔~→→→→→→大神朋友简介:从事十几年人工智能研究,麻省理工博士学位,目前在百度继续进行着人工智能的研究。。。▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲...原创 2016-10-09 15:05:12 · 10144 阅读 · 10 评论 -
VMware虚拟机中安装Linux系统
VMware虚拟机中安装Linux系统原创 2017-06-04 10:49:17 · 1457 阅读 · 0 评论 -
Makefile中make几个基本操作
make clean:仅仅是清除之前编译的可执行文件及配置文件。 make distclean:要清除所有生成的文件。原创 2017-06-04 11:11:35 · 1280 阅读 · 0 评论 -
VMware虚拟机安装VMware Tools
选择VM -> Install VMware Toolscd ~ cp /media/x/VMware\ Tools/VMwareTools-* .tar -xvf VMwareTools-*cd vmware-tools-distrib/./vmware-install.real.pl然后第一步Yes,后面一路回车安装完毕:reboot原创 2017-06-04 10:59:57 · 631 阅读 · 0 评论 -
谈谈linux_init命令
reboot可能是每个用过Linux的人都知道的命令,但有一个命令“init”才是命令中的精英。 比如安装了CentOS,明明安装的是带桌面的系统,但是启动后进入了命令行模式,执行了一下“init 5”,界面就出来了。 Linux有个文件 /etc/inittab# # inittab This file describes how the INIT process shou原创 2017-05-27 10:34:51 · 791 阅读 · 0 评论 -
将Ubuntu 16.14的用户界面语言从英语切换到汉语
①进入System Settings②点击其中的 Language Support,弹出如下窗口,在语言列表中向下滚动,找到“汉语(中国)”,用鼠标将其拖到列表的顶端,释放鼠标,然后点击 Apply System-wide,输入密码。最后点击 Close 按钮关闭对话框,重启电脑。③重启后在登录界面,语言已经变成汉语了。键入密码登录,弹出如下提示对话框,点击“更新名称”。语言切换工作结束。原创 2017-09-01 10:15:30 · 4452 阅读 · 0 评论 -
【补充】 嵌入式中的 *(volatile unsigned int *)理解
先看一个例子:*(volatile unsigned int *)0x500 = 0x10 ①(unsigned int *)0x500:将地址0x500强制转化为int型指针 ②(unsigned int )0x500=0x10:对地址为0x500赋值为0x10volatile关键字有以下用途:用来同步,因为同一个东西可能在不同的存储介质中有多个副本,有些情况下会使得这些副本中的值不原创 2017-06-12 13:11:28 · 7817 阅读 · 4 评论 -
判断机器大小端模式
简单介绍一下大小端模式: 像内核开发,网络开发,以及嵌入式开发都要涉及以位为单位来操作,所以都要考虑大小端问题。 大端模式:数据的高位,存放在地址的低位。 小端模式:数据的高位,存放在地址的高位。介绍三种判断本机大小端模式的程序:① 通过位移操作#include <stdio.h>#include <stdlib.h>#define panduan(x) (x>>1)?原创 2017-09-24 21:43:40 · 1881 阅读 · 0 评论 -
安装交叉编译工具链
关于ARM交叉编译工具链的介绍与下载请点我跳转一、简介: 简单介绍一下:交叉编译器一般来说是针对某个特定版本的uboot和kernel来专门制作的,也就是说,如果一个开发板的uboot和内核版本确定了,那么对应的编译器版本也就确定了。 ① 因为随着时间的推移,C/C++语言的标准每隔一段时间就更新扩展一次,导致的结果是修改uboot和kernel的那帮工作人员在使用新标准的语言原创 2017-09-24 18:04:20 · 3731 阅读 · 0 评论 -
简单谈谈Makefile和交叉编译工具链
先来简单谈谈生成一个可执行文件所需要的过程预处理(preprocessing)->编译(compilation)->汇编(assembly)->连接(linking) 编译:.c->.s 汇编:.s->.o 连接:多个.o合并成一个可执行文件。 在平常通过将上述四步统称为“编译”接下来通过两个简单的例子来简单分析MakefileMakefile三大组成:目标、依赖、命令 一 Mak原创 2017-06-11 14:59:32 · 11134 阅读 · 0 评论 -
2440烧写flash问题
讲解Makefile和交叉编译工具篇幅较长,先说flash问题。烧写norflash&nandflash?对于我个人来说,下载到norflash可以,但是因为我是从norflash启动uboot然后在uboot中通过dnw烧写的,如果norflash中是裸机程序,那么uboot启动不起来了,烧写也就不能进行。 S3C2440中有被称为“Steppingstone”的4KB内部RAM。当从Nan原创 2017-06-11 13:42:24 · 1035 阅读 · 0 评论 -
【实战】电脑 开发板 虚拟机三者互ping通教程
韦东山百问网公司出品电脑 开发板 虚拟机三者互通教程(推荐)大家的学习环境大概分为以下四种:1、电脑使用无线上网,但是无法将开发板链接到电脑所连接的AP,比如校园 wifi、公司wifi。2、电脑使用无线上网,无线是自己的路由器发射的(我认为这也需要用网线与路由器相连),因此可以将开发板使用网线连接到路由器上。3、电脑使用有线上网,网线是连接到自原创 2017-08-06 15:33:52 · 8056 阅读 · 3 评论 -
【补充】常用Makefile格式分析
Makefile格式分析如下: Makefile三大组成:目标、依赖、命令 一、led.bin: led.o #(目标文件的生成依赖于命令行对依赖文件的处理。要将所有能生成的.o文件都写到依赖里面。)#.bin为目标文件(启动文件),可直接烧录到芯片中运行#.o为依赖文件,其生成源于.s(汇编文件)或.c(C文件),%表示名字,编译时名字要一致。 arm-linux-ld -Tt原创 2017-07-25 20:10:46 · 992 阅读 · 0 评论 -
【补充】关于ARM的PC指针异常返回处理(PC+8,PC+4,PC-4,PC-8情况)
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼分享一个大神朋友的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!点击浏览教程。写得特别用心喔~→→→→→→大神朋友简介:从事十几年人工智能研究,麻省理工博士学位,目前在百度继续进行着人工智能的研究。。。▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲...原创 2017-07-15 22:03:12 · 13160 阅读 · 9 评论 -
【补充】NAND FLASH大页和小页的区别
NAND FLASH有两类:大页的NAND和小页的NAND。每种NAND的一页中都有数据段(datafield)和附加段(Spare Field),datafield用于存放数据用的,Spare Field读写操作的时候存放校验码用的,大页的NAND中数据段2048B、附加段64B;小页的NAND中数据段512B、附加段16B。小页的NAND是:One page = 512B(datafield)原创 2017-07-13 16:01:19 · 7295 阅读 · 0 评论 -
【补充】 关于*(mmu_tlb_base + (virtuladdr >> 20))的理解
对于MVA到PA转换过程,以及描述符所扮演的角色,请看下图: 来看代码:unsigned long virtuladdr, physicaladdr;unsigned long *mmu_tlb_base = (unsigned long *)0x30000000;//对应上图TTBvirtuladdr = 0xA0000000;//对应上图MVAphysicaladdr = 0x56000原创 2017-07-12 09:39:43 · 6559 阅读 · 1 评论 -
【补充】ARM MMU页表框架
学习于此先上一张arm mmu的页表结构的通用框图(以下的论述都由该图来逐渐展开):以上是arm的页表框图的典型结构:即是二级页表结构:其中第一级页表(L1)是由虚拟地址的高12bit(bits[31:20])组成,所以第一级页表有4096个item,每个item占4个字节,所以一级页表的大小为16KB,而在第一级页表中的每个entry的最低2bit可以用来原创 2017-07-11 15:54:04 · 3350 阅读 · 0 评论 -
【补充】arm堆栈-(堆栈起始地址的选择)
学习于此堆栈寄存器起始地址的设置:程序刚启动并没有启动内存管理单元MMU,真正的内存地址如下S3C2440的储存空间映射图:ARM 使用统一编址,所以,我们得把堆栈指针设置到内存地址范围内;NAND FLASH 启动时: 堆栈寄存器可以设为片内RAM 的最大地址:0x1000(4K)-4096 或者64MSDRAM的最大地址0x34000000(64M SDRAM的地址空间映射到BANK原创 2017-07-11 09:47:01 · 4763 阅读 · 0 评论 -
【补充】为什么初始化SDRAM中 adrl r2, mem_cfg_val而不是 ldr r2,=mem_cfg_val
我们来回顾2440的启动方式Nand启动 ①Nand前4K-> SRAM(2440中有4K的SRAM) ②CPU从0地址执行(SRAM的0地址)Nor启动 ①0->Nor ②CPU从0地址取址执行(Nor的0地址)我以Nand启动为例: S3C2440中有被称为“Steppingstone”的4KB内部RAM。当从NandFlash启动CPU时,CPU会通过内部的硬件将NA原创 2017-07-09 21:29:12 · 787 阅读 · 0 评论 -
【补充】位置无关码和位置有关码
转自于此!在移植 uboot 时,接触到一个概念叫做 位置无关码,那么与它对应的就是位置有关码。提到这两个概念就还得提一提链接地址、加载地址。 链接地址,链接脚本里指定的,理论上程序运行时所处的地址。在编译时,编译器会根据链接地址来翻译位置有关码。 加载地址,程序运行时,实际所处的地址。 位置无关码,位置有关码,是相对于一条指令的正常目的来说的。比原创 2017-07-09 21:14:13 · 1108 阅读 · 0 评论 -
【补充】adr和ldr的区别
adr和ldr的区别原创 2017-07-09 17:13:20 · 2564 阅读 · 1 评论 -
【补充】s3c2440启动过程详细分析
转自韦东山博客2440启动过程分析作者:王辉 2440启动过程算是一个难点,不太容易理解,而对于2440启动过程的理解,影响了后面裸机代码执行流程的分析,从而看出2440启动过程的重要性。 2440启动方式和启动方式选择在S3C2440的datasheet《S3C2440A_UserManual_Rev13.pdf》中搜索map,可以原创 2017-06-14 21:15:46 · 1223 阅读 · 0 评论 -
谈谈#!/bin/sh
对#!/bin/sh的认识第一次学shell编程,看的文章中说shell程序必须以"#!/bin/sh"开始,也就认为是这样了,虽然知道在shell中以"#"开始的语句都是注释,但也从没认为"#!/bin/sh"也是注释,就像对C语言程序必须有main函数一样毫无怀疑。但前些时候又听说"#!/bin/sh"也是注释,可有可无,当时觉得真是一个失败,连基本的语法都分不清。前几天借了一原创 2016-11-28 17:17:21 · 1945 阅读 · 0 评论