在线问答
直播中

dz_ltf

9年用户 300经验值
擅长:电源/新能源 模拟技术 EMC/EMI设计 嵌入式技术 控制/MCU
私信 关注

【OK210试用体验】 我的开发板学习日记一linux下的程序解读1

最近事情较多,没有及时更新,忽略了板子,表示抱歉,闲话不多说,进入正题:
上一帖子经过很多问题后,可以将编译好的BIN文件下载到开发板中,并得到想要的效果,下载过程表示问题不大了,其次就是具体的函数程序的编译,以及根据威廉希尔官方网站 原理解读,威廉希尔官方网站 原理表示压力不大(工作性质硬件的)函数程序的编译是软肋,多少有些基础,今天先解读简单的例子,从里面得到通用的知识:LED:
首先我们要了解,当对于初学者而言,我们要下载一个程序,需要些什么怎么做,对硬件来说,看得懂原理图,对软件来说,在linux下,我们需要写一个程序, 飞信截图20150924101524.jpg

以上图片是我从网上查的资料的一个流程图 我觉得可以参考。

   将编写的一个c程序(源代码 )转换成可以在硬件上运行的程序(可执行代码 ),需要进行编译阶段  和链接这两个阶段。

      其中,

      1.  编译阶段先通过“编译器 “把一个 .c / .cpp 源代码 编译成 .s的汇编代码 ;再经过“汇编器 ” 把这 个.s的汇编代码汇编成 .o 的 目标代码

      2.  “连接器 “ 通过连接其他 .o 代码(如果需要的话) 库文件 和 1 中的.o 目标代码生成可执行文件

该文件流被这三种程序(红色)的加工,分别表现出四种形式(蓝色) ,这就是c程序的编译和链接过程。如果再详细的话,编译器在将源文件编译成汇编文件的过程又分为:预处理阶段(生成 .i代码 ) 和  优化阶段


二、C编程中的文件后缀名介绍

    .c 未经过预处理的C源码
    .h C头文件  
    .i 经过预处理的C源码

    .s 生成的汇编语言代码
    .o 编译之后产生的目标文件
    解释:*.c一般使我们自己编辑的代码,使我们劳动的结晶;*.h一般是我们手工生成的接口文件,如果愿意,也可在*.c完成后用GCC的选项-aux-info帮我们生成;*.i是经过预处理后的源码,是由GCC在选项-E编译下自动生成的文件;*.o是编译后产生的目标文件;*.s是GCC在选项-S编译下生成的汇编语言代码,对于性能要求很高的程序可以先生成汇编语言文件并对汇编做优化,然后用优化后的汇编生成目标文件并链接。

上几篇帖子中,LED程序我自己没有写下载网友的程序后,在linux下进行make,生成bin文件下载到开发板中,在复制的文件中包括:

led1.jpg led2.jpg

接下来就是弄清楚每个文件的含义以及怎么来的,上两个图是我测试的led程序所包含的直接make就可;下图:

led3.jpg

这个程序里面的更为规整一些,其中的一些文件我知道什么含义但是还是不是特别理解,接下来看几天MAKEFILE以及搜搜资料,也请大神留言指导指导!!!!此次发帖间隔较长,见谅



更多回帖

发帖
×
20
完善资料,
赚取积分