section

STM32,ARM,Keil工具相关

China☆狼群 提交于 2020-01-28 16:11:01
One ELF Section per Function https://blog.csdn.net/iceiilin/article/details/6091575 因此,可以得出,选项One ELF Section per Function的主要功能是对冗余函数的优化。通过这个选项,可以在最后生成的二进制文件中将冗余函数排除掉(虽然其所在的文件已经参与了编译链接),以便最大程度地优化最后生成的二进制代码。 而该选项实现的机制是将每一个函数作为一个优化的单元,而并非整个文件作为参与优化的单元。 选项One ELF Section per Function所具有的这种优化功能特别重要,尤其是在对于生成的二进制文件大小有严格要求的场合。人们习惯将一系列接口函数放在一个文件里,然后将其整个包含在工程中,即使这个文件将只有一个函数被用到。这样,最后生成的二进制文件中就有可能包含众多的冗余函数,造成了宝贵存储空间的浪费。 The One ELF Section per Function option tells the compiler to put all functions into their own individual ELF sections. This allows the linker to remove unused functions. An ELF code

C语言解析INI文件(利用开源的iniparse库)

Deadly 提交于 2020-01-27 01:40:50
一、了解什么是INI文件? ini 文件是Initialization File的缩写,即初始化文件,这是用来配置应用软件以实现不同用户的要求。 二、INI文件的格式 INI文件由节、键、值组成。 一个简单的的INI文件例子如下: [Setting] INIT_FLAG=0; VOLUME=1; LANGUAGE=1; 如上例子,[Setting]就是节,=号左边的值是键,=号右边的是值。 三、使用开源的iniparse库解析上述文件 iniparse.h /*-------------------------------------------------------------------------*/ /** @file iniparser.h @author N. Devillard @brief Parser for ini files. */ /*--------------------------------------------------------------------------*/ #ifndef INIPARSER_H #define INIPARSER_H /*--------------------------------------------------------------------------- Includes ----------

如何在Linux下写汇编

对着背影说爱祢 提交于 2020-01-26 03:37:40
本文为翻译文章,原文参见: http://docs.cs.up.ac.za/programming/asm/derick_tut/ 1.NASM编译器 目前Linux下的汇编器主要有:as、as86和gas,但是本文使用的是NASM(The Netwide Assembler)。它使用Intel形式的汇编格式,和Intel形式相对的是AT&T形式的汇编格式。 2.Linux下汇编介绍 2.1DOS和Linux下汇编的主要不同 (1)DOS下的汇编,主要通过 int 21h 中断来实现各种DOS功能调用,而BIOS调用则是主要通过 int 10h 和 int 16h 中断来实现。但是在Linux中, 所有以上的功能调用都是通过内核来实现的。因此所有的功能都是通过“系统调用”来实现,而我们可以通过使用 int 80h 中断来实现系统调用。其中,Linux大约有190个左右的系统调用,比DOS下的要少。 (2)Linux是一个真正32位保护模式的操作系统,因此我们使用的是32为的汇编程序。32位汇编程序运行我们使用全部的内存(4G),这意味着我们不用在考虑段基址了,也不用在修改和操作段寄存器了,从某种程度上来说,变的更容易了。 (3)在32为汇编程序中,我们可以使用32位的寄存器 EAX、EBX、ECX等代替传统的16位寄存器 AX、BX、CX等寄存器。 2.2Linux下汇编的编写

ffmpeg解析TS流

℡╲_俬逩灬. 提交于 2020-01-25 00:54:52
介绍: MPEG的系统层编码为不同的应用场景设计了两种格式: TS(Transport Stream) 和 PS(Program Stream) , 它们两者之间不具有层级关系, 在逻辑上,它们两者都是由PES(Packetized Elementary Stream)包组成的, 所以可以很方便地实现相互转换. TS(Transport Stream): 是将具有一个或多个独立时间基的一个或多个节目(包括音频和视频)组成一个流, 组成同一个节目的基本流(如一个视频流,多个音频流)的PES包有一个共用的时间基。 TS的包长标准为 188bytes . 从上面的定义可以分成 三层 来看TS/PS。 ES层 : 由单独的音频(如mp3),视频流(如h.264)组成基本的ES(Elementary Stream)。 PES层 : 将基本的ES按一定的规则(如H.264以AU)进行封装,并打上时间戳,组成PES。 TS/PS层: 将PES包进行切分后再封装成188bytes大小的TS包, 同时还将一些节目信息也封装成TS包(称为section), 两者共同组成TS层。 从上面的总结,TS/PS总体上来说,是一种封装格式,用来承载数据。 所以FFmpeg 将TS/PS的解析文件定义在 libavformat/mpegts.c 文件中 将音频,视频的解码定义在 libavcodec/mpeg12

html5——语义标签

与世无争的帅哥 提交于 2020-01-22 23:53:44
传统布局 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> .header { width: 1000px; height: 120px; background-color: pink; margin: 0 auto; } .nav { width: 1000px; height: 60px; background-color: #daa520; margin: 0 auto; } .section { width: 1000px; height: 400px; background-color: #ccc; margin: 0 auto; } .section .aside { float: left; height: 400px; background-color: red; width: 400px; } .section .article { float: right; height: 400px; background-color: green; width: 600px; } .footer { width: 1000px; height: 90px; background-color: #333; margin: 0 auto; } <

链接脚本

左心房为你撑大大i 提交于 2020-01-21 22:08:10
这样就把foor(), bar()这两个函数给放在了最终elf文件里的.out_name这个section。 __attribute__((section(".sec_name"))) void foo(void) __attribute__((section(".in_name"))); void bar(void) __attribute__((section(".in_name"))); .out_name { *(.in_name) } 从宏观上来看下这个链接脚本,这也是为什么可执行文件的内存布局先是代码段,接着数据段,再是bss段的原因,即链接脚本决定可执行文件的内存布局。 SECTIONS { .text : { ... } .data : { ... } .bss:{ ... } } 当我們想要把 code 放到 0x10000,data 放到 0x8000000,以下就是符合我們要求的 linker script SECTIONS { . = 0x10000; .text : { *(.text) } . = 0x8000000; .data : { *(.data) } .bss : { *(.bss) } } 来源: CSDN 作者: luckywang1103 链接: https://blog.csdn.net/luckywang1103/article

map方法

丶灬走出姿态 提交于 2020-01-21 15:26:43
总结: 有些后台返回的数据需要双层循环遍历才能拿出里面的值。可以用map去遍历,自己定义一个字段,去存储到数据外层。 this.DownData=res.data.map(item=>{ item.exsection=item.section==1?'总经理':item.section==2?'前台':item.section==3?'计调':item.section==4?'导游':item.section==5?'财务':'' return item; }); 来源: CSDN 作者: WeiflR10 链接: https://blog.csdn.net/WeiflR10/article/details/104061065

B站收藏 6.1w !GitHub 标星 3.9k !这门神课拯救了我薄弱的计算机基础

南笙酒味 提交于 2020-01-17 23:05:54
作者 | Rocky0429 来源 | Python空间 注: 之前就一直强调计算机基础的重要性,今天给你们搜索了相应的课程 大家好,我是 Rocky0429,一个对计算机基础一无所知的 蒟蒻 ... 作为一个所谓的计算机科班出身的人来说,特别难为情的是自己的计算机基础很差,比如计算机网络当年一度差点挂掉,多亏当时的老师手下留情,给我一个刚及格的分数,但也因为这门课,造成我在之后申请奖学金的时候与其擦身而过。 我觉得我可以作为一个反例放在阳光下暴晒。熟悉我的读者可能知道我大学是搞 ACM 出身,当年我所有的精力都放在上面,每天沉迷的是学习各种算法,各种姿势切题,以至于我逃了大多数的课,就算去上课的时候也在搞不相关的东西。 当时一方面是环境使然,另一方面是像计算机网络这种课听起来太枯燥。每次考试靠突击,成绩还不错,也不会挂科,就这么随它去了。虽然听过很多基础很重要的说法,有时候会想想是不是要好好补一下基础的东西,还是因为各种各样的原因搁浅了... 直到考研复试,到面试那一步,除了算法方面,面对各种计算机网络\操作系统\数据库的问题,我感觉有点无力招架,只觉得自己当时的脑子充满浆糊,没有思考,有的只是临时死记硬背的东西。直到结束准备离开的时候,居中的老教授含蓄的建议,我才算真正有了要好好再回头去学的意识。 时间越长好像越明白这些基础知识和原理的重要性,这样说起来简单

CSS3: 常见的视频背景网页

≡放荡痞女 提交于 2020-01-16 14:24:46
截图: 思路: 其实很简单,就是有个header和下面的2个section。section是用来展示下面的描述文字的。 重点是header:有3个div. 第一个div是包裹viedeo的。 第2个div是做蒙版用的。 第3 个div就是展示上面图中看到的描述和按钮""let me love you " 最后使用了@media适配移动端. 其实,应该注意的是, 当写完后在浏览器中打开不管窗口多大,我们只能看到header,这是因为尺寸单位vw和vh的功劳。 当我们往下翻动的时候才会看到2个section. 源代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>视频背景</title> <style> *{ box-sizing: border-box; } body{ margin: 0; font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif; font

C#操作INI配置文件

守給你的承諾、 提交于 2020-01-16 08:24:56
介绍 .ini 文件是Initialization File的缩写,即初始化文件, 是windows的系统配置文件所采用的存储格式, 统管windows的各项配置,一般用户就用windows提供的各项图形化管理界面就可实现相同的配置了。 .Net框架下的类库是基于托管代码的,而API函数是基于非托管代码的, 运行库的控制下执行的代码称作托管代码。相反,在运行库之外运行的代码称作非托管代码。 .NET 的公共类库 没有直接操作Ini文件的类, 所以我们使用 System.Runtime.InteropServices 下的 [DllImport(“kernel32.dll”)] 将我们要用的 kernel32.dll 引入。 第一部分: Api using System.Runtime.InteropServices; using System.Text; namespace XHelper.IniFile { public class IniApi { /// <summary> /// 读取 (int 类型) /// </summary> /// <param name="section"></param> /// <param name="key"></param> /// <param name="noText"></param> /// <param name=