
Linux
文章平均质量分 80
lzhf1122
这个作者很懒,什么都没留下…
展开
-
gcc编译参数指定编码格式
gcc 编译时程序编码控制【GCC关于编译后字符串的保存方式的相关参数】 先了解一下GCC关于编译后字符串的保存方式的参数。 GCC编译时可以使用如下参数: -finput-charset 指定源文件的编码(若不指定,默认是UTF-8) -fexec-charset 指定多字节字符串(const char*)常量在编译后的程序里保存的编码集(若不指定,默认是UTF-8) -fwid原创 2016-11-18 12:10:45 · 11972 阅读 · 2 评论 -
移植linux-4.15.12
0.下载、解压:在https://www.kernel.org/ 下载linux-4.15.12.tar.xzxz -d linux-4.15.12.tar.xz 然后会发现文件的格式变成了.tar格式。再按照.tar格式解压:tar -xvf linux-4.15.12.tar 就可以进行移植操作了。1.修改Makefile文件:ARCH ?= arm CROSS_CO...原创 2018-04-11 11:32:05 · 521 阅读 · 0 评论 -
S3C2440移植 u-boot-2016.11
移植完成后使用以下命令制作补丁文件:make distcleanmv u-boot-2016.11 u-boot-2016.11_newtar xjf u-boot-2016.11.tar.bz2diff -urN u-boot-2016.11 u-boot-2016.11_new > u-boot-2016.11_new.patchpatch -p1 < ../u-boot-...原创 2018-03-21 22:42:11 · 591 阅读 · 2 评论 -
u-boot-2016.05启动流程
0、由u-boot-2016.05\arch\arm\cpu\u-boot.lds链接文件中ENTRY(_start) 可知程序的入口在_start,在SourceInsight中查找可发现程序的入口_start在u-boot-2016.05\arch\arm\lib\vectors.S中。...ENTRY(_start)SECTIONS{ ... . = 0x00000...转载 2018-03-21 21:25:53 · 470 阅读 · 0 评论 -
Ubuntu下ftp的配置
安装:sudo apt-get updateapt-get install vsftpd (卸载:apt-get remove --purge vsftpd)配置: 在etc/vsftpd.conf文件中: write_enable=YES anonymous_enable=YES anon_upload_enable=YES anon_mkdir_write_...原创 2018-03-14 10:12:56 · 169 阅读 · 0 评论 -
U-boot初体验
初体验:make smdk2410_defconfigmake ARCH=arm CROSS_COMPILE=arm-linux-编译后:在tool在:sudo cp mkimage /usr/local/bin/ ,编译内核时可以生成U-Boot格式的内核映像文件。 支持norflash后:flinfo,然后检查栈的设置:protect off allerase 90000 9ffffcp.b ...原创 2018-03-23 09:03:34 · 235 阅读 · 0 评论 -
CPU与SOC
CPU基本结构: 从功能上看,一般CPU的内部结构可分为:控制单元、逻辑运算单元、存储单元三大部分。其中控制单元完成数据处理整个过程中的调配工作,逻辑单元则完成各个指令以便得到程序最终想要的结果,存储单元就负责存储原始数据以及运算结果。浑然一体的配合使得CPU拥有了强大的功能,可以完成包括浮点、多媒体等指令在内的众多复杂运算。控制单元:控制单元是整个CPU的指挥控制中心,由指令寄存器IR(Ins...原创 2018-03-11 16:50:27 · 1751 阅读 · 0 评论 -
C语言之volatile
一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的方法有:将内存变...转载 2018-03-11 11:21:04 · 286 阅读 · 0 评论 -
嵌入式之时钟体系结构
1. 概述 如下图1所示,ARM的时钟系统包括4部分,分为晶体振荡器、唤醒定时器、锁相环(PLL)和VPB分频器。其中晶体振荡器为系统提供基本的时钟信号(频率为Fosc)。当复位或者处理器从掉电模式唤醒时,“唤醒定时器”要对输入的时钟信号做计数延时,使芯片内部的部件有时间进行初始化。然后Fosc被PLL提高到一个符合用户需要的频率Fcclk,Fcclk用于CPU内核。因为CPU内核通常比外设...原创 2018-03-11 10:50:39 · 6016 阅读 · 0 评论 -
Linux之链接脚本
1. 什么是链接脚本 链接器主要有两个作用,一是将若干输入文件(.o文件)根据一定规则合并为一个输出文件(例如ELF格式的可执行文件);二是将符号与地址绑定。本文只关心它的第一个功能,即如何根据一定规则将一个或多个输入文件合并成输出文件。这里的“一定规则”是通过链接脚本描述的。链接器有一个编译到其二进制代码中的默认链接脚本(可以使用–verbose命令行显示缺省的链接器脚本的内容),大多数情...原创 2018-03-11 09:36:45 · 696 阅读 · 0 评论 -
Linux之环境变量
Linux系统中的环境变量是用来指定系统运行环境的一些参数,比如我们使用命令的路径。通过环境变量来帮助Linux系统构建起为用户服务的工作环境,需要数百个变量来协同完成的。我们可以用env命令查看linux系统中所有的环境变量。分类 根据环境变量的生命周期我们可以将其分为永久性变量和临时性变量,根据用户等级的不同又可以将其分为系统级变量和用户级变量。对所有用户生效的永久性变量(系统级...原创 2018-03-10 21:59:37 · 258 阅读 · 0 评论 -
嵌入式Linux音频驱动开发
1.嵌入式音频系统硬件连接下图所示的嵌入式设备使用IIS将音频数据发送给编解码器。对编解码器的I/O寄存器的编程通过IIC总线进行。2.音频体系结构-ALSAALSA是Advanced Linux Sound Architecture 的缩写,目前已经成为了linux的主流音频体系结构在内核设备驱动层,ALSA提供了alsa-driver,同时在应用层,ALSA为我们提供了al原创 2017-12-29 13:52:00 · 12041 阅读 · 2 评论 -
Linux文件权限
自我学习很重要,因为”师傅领进门,修行在个人“。自古只有天才学生,没有天才老师。 在Linux系统中,默认的情况下,所有系统账号与一般身份用户,以及root的相关信息,都记在/etc/passwd这个文件内的。密码则记在/etc/shadow这个文件中。 此外,Linux所有的用户组名称都纪录在/etc/group内。1.Linux文件属性2.更原创 2017-04-25 09:09:29 · 429 阅读 · 0 评论 -
使用IJG JPEG库
此文件描述如何在应用程序中使用IJG JPEG库。 如果你想编写一个使用该库的程序,请阅读它。文件example.c提供了大量注释的框架代码来调用JPEG库。 另请参阅jpeglib.h(应用程序使用的include文件程序),以获取有关数据结构和函数参数列表的完整详细信息。当然库的源代码是最终的参考。在尝试使用库进行编程之前,应至少阅读概述和基本用法部分。 有关高级功能的部分如果当你需要翻译 2016-12-01 10:20:58 · 907 阅读 · 0 评论 -
通用的Makefile文件
本程序的Makefile分为3类: 1. 顶层目录的Makefile 2. 顶层目录的Makefile.build 3. 各级子目录的Makefile一、各级子目录的Makefile: 它最简单,形式如下: obj-y += file.o obj-y += subdir/ "obj-y += file.o"表示把当前目录下的file.c编进程序里, ...原创 2018-06-27 15:52:46 · 603 阅读 · 0 评论