[国嵌笔记][017][Makefile工程管理]】的更多相关文章

Makefile的用途 1.make能够使整个程序的编译.链接只需一个命令就可以完成 2.make的工作主要依赖于Makefile的文件.Makefile文件描述了整个程序的编译.链接等规则,使之自动完成. Makefile的构成 1.规则 targets(目标):prerequisties(依赖) command(命令) 注意:command前面是[tab]而不是空格,否则执行会出错 1.伪目标:只有目标和命令,没有依赖的规则称为伪目标,伪目标通常用 .PHONY:targets (也可以不写…
Makefile 工程管理 Makefile 规则 --变量 在Makefile中,用户除了可以自己定义变量外,还可以使用存在系统已经定义好的默认变量 $^:代表所有的依赖文件 $@:代表目标 $<:代表第一个依赖文件 Makefile使用技巧 --去回显 Makefile 中“#”字符后的内容被视作注释 @:取消回显 使用技巧 – 文件名 Make命令默认在当前目录下寻找名字为Makefile或者makefile的工程文件,当名字部位这两者之一时,可以使用如下方法指定: make –f 文件名…
[国嵌笔记][008][远程登录Linux] 1.windows与Linux能够相互ping通 2.关闭Linux防火墙 /etc/init.d/iptables stop 3.通过ssh(字符界面)协议远程登录 4.通过VNC(图形界面)协议远程登录 1.安装tigervnc.rpm 2.启动vnc服务:vncserver & [国嵌笔记][009][Windows与Linux文件互享] 1.windows与linux能够相互ping通 2.关闭Linux防火墙 /etc/init.d/ipt…
一.交叉工具链 嵌入式Linux开发采用交叉开发,简单来说就是在宿主机(PC机)上面编译出能够在其他硬件平台上面运行的程序.在这个过程中,需要用到许多的交叉工具,这些交叉工具的集合就叫做交叉工具链.下面列举嵌入式开发中常用的交叉工具. 1.交叉编译器    arm-linux-gcc 交叉编译器的命名十分有特色,前面两个字符串表明了他们可以使用的平台.例如:arm-linux-gcc说明用来编译出用于ARM平台的程序. 用法:arm-linux-gcc hello.c -o hello 2.交叉…
​ Linux 环境下的程序员如果不会使用GNU make来构建和管理自己的工程,应该不能算是一个合格的专业程序员,至少不能称得上是 Unix程序员.在 Linux(unix )环境下使用GNU 的make工具能够比较容易的构建一个属于你自己的工程,整个工程的编译只需要一个命令就可以完成编译.连接以至于最后的执行.不过这需要我们投入一些时间去完成一个或者多个称之为Makefile 文件的编写. ​ 所要完成的Makefile 文件描述了整个工程的编译.连接等规则.其中包括:工程中的哪些源文件需要…
GNU make Linux程序员必须学会使用GNU make来构建和管理自己的软件工程.GNU的make能够使整个工程的编译.链接只需要一个命令就可以完成. makefile make在执行时,需要一个命名为Makefile的文件.Makefile文件描述了整个工程的编译.链接等规则.其中包括:工程中哪些源文件需要编译以及如何编译:需要创建哪些库文件以及如何创建这些库文件.如何最后产生我们想要的可执行文件. Makefile(例) hello:main.o func1.o func2.o gc…
Eclipse集成开发环境的作用 可以编译程序,也可以对程序进行在线调试 集成开发环境 1.JLink连接开发板的JTAG 2.JLink连接PC的USB 3.eclipse软件 4.gdb server软件 5.JLink软件 安装步骤 1.格式化nand flash 2.连接JLink,并设置从nand flash启动 3.安装gdb server软件 1.tar zxvf linux-gdb-7.5.tar.gz 2.执行./build-all,编译gdb server软件,然后安装软件…
uboot工作流程分析 程序入口 1.打开顶层目录的Makefile,找到目标smdk2440_config的命令中的第三项(smdk2440) 2.进入目录board/samsung/smdk2440/,找到u-boot.lds文件.uboot的链接都是由这个链接器脚本来控制的 3.打开u-boot.lds文件,找到.text(代码段)的第一个文件cup/s3c24xx/start.o,该文件就是uboot的入口代码.链接器脚本中的ENTRY用来表明整个程序的入口,那么标号_start就是整个…
汇编程序用途 1.在bootloader与内核初始化时,还没有建立C语言运行环境,需要用到汇编程序 2.在对访问效率要求很高的情况下,需要用到汇编程序 ARM汇编分类 1.ARM标准汇编:适合于Windows在平台下使用 2.GUN汇编:适合于Linux在平台下使用 汇编程序框架 完整版: .section .data 数据段 <初始化数据> .section bss bss段 <未初始化数据> .section .text 代码段 .global _start 通过global申…
在之前我们已经学习了一个文件的编译过程,但是做过项目的都知道,一个工程中的源文件不计其数,其按类型.功能.模块会分别放在若干个目录中,而这些文件如何编译就需要有一个编译规则,虽然现在很多大型的项目都是直接用诸如CMake.Autotools.SCons等工具生成的,但是对于一些小项目,使用工具就没有什么必要了,而且对于项目编写来说,掌握Makefile的基本知识对我们来说也是很有必要的. 我们本篇文章所要讲解的就是这个编译规则的文件makefile的规则及如何进行编写.makefile定义了一系…
Makefile文件描述了整个工程的编译.链接等规则.包括:工程中哪些源文件需要编译以及如何编译:需要创建哪些库文件以及如何创建这些库文件.如何产生最终的可执行文件. Makefile相关术语 1.规则:用于说明如何生成一个或多个目标文件.在Makefile中,规则的顺序非常重要,因为Makefile中只应该有一个最终目标,其他目标都是为了生成该目标而产生的中间文件,所以一般第一条规则中的目标将被确认为最终的目标. 规则格式如下:targets : prerequisites command 目…
1. 为什么得用Makefile 单步命令生成led.bin [root@cfm880 lesson1]# cd .. [root@cfm880 Part1]# mkdir lesson3 [root@cfm880 Part1]# cd lesson3 [root@cfm880 lesson3]# chmod 777 ./ [root@cfm880 lesson3]# ls led.lds led.S Makefile [root@cfm880 lesson3]# arm-linux-gcc -…
个人理解吧,makefile就是写一个指定格式的文件,将一系列的编译.链接.转换等操作打包在一起,方便以后一键生成可执行的二进制文件而产生的.下面记录一下这种文件的写法,方便以后忘了来查询. makefile文件一般格式(又叫规则): 目标文件名:依赖文件名 命令 就是这样,注意第二行,命令前面的空白不是用空格键敲出来的,而是用一个Tab键直接搞定.其中,目标文件只能有一个,而依赖文件可以有一个,可以有多个,甚至一个也没有.没有依赖文件的目标称为伪目标,通常是为了给某个操作命名方便以后直接使用.…
用户管理类命令 添加用户:useradd name 删除用户:userdel -r name "-r"表示删除对应用户的目录 修改密码:passwd name 切换用户:su - name "-"表示切换用户同时带入环境变量 添加用户组:groupadd name 删除用户组:groupdel name 权力分配:sudo commend 系统管理员分配给普通用户一些合理的权力 通过配置/etc/sudoers文件来分配权力 username ALL=(ALL) N…
Bootloader的作用就是启动Linux内核 U-Boot简介 1.U-Boot是用于多种嵌入式CPU(ARM.x86.MIPS等)的bootloader程序,U-Boot不仅支持嵌入式Linux系统的引导,还支持VxWorks.QNX等多种嵌入式操作系统 2.uboot自动启动Linux的模式叫做自主模式:uboot在启动倒计时,停止启动的模式叫开发模式 建立uboot代码工程 1.安装source insight,方便进行大量代码的阅读 2.建立工程 project->new proje…
GCC特点 GCC(GUN C Compiler)是GUN推出的功能强大.性能优越的多平台编译器.其执行效率与一般编译器相比平均效率要高20%~30%. GCC基本用法 gcc [options] filenames GCC编译流程 hello.c->预编译->hello.i->编译->hello.s->汇编->hello.o->链接->hello gcc -E hello.c -o hello.i   "-E"表示执行预处理 "…
破解步骤 1.在系统启动时进入grub选项菜单 2.在grub选项菜单中按e进入编辑模式 3.编辑kernel行,添加 /init 1 (表示进入单用户启动模式,在单用户启动模式中不会要求输入密码) 4.按b重启 5.进入系统后,将root用户密码删除 vim /etc/passwd 修改成root::0...,并保存退出 6.正常启动后,修改root密码…
交叉开发 嵌入式软件产生的平台称为宿主机,运行嵌入式软件的平台称为目标机 宿主机一般通过串口.网络.USB.JTAG等方式将软件下载到目标机 网络下载 一般有TFTP和NFS两种方式 tftp服务器 1.安装tftp服务器 rpm -ivh /mnt/Packages/xinetd-.rpm rmp -ivh /mnt/Packages/tftp-server-.rpm 2.配置tftp服务器 vim /etc/xinetd.d/tftp server_args = -s /home/tftp…
Vmware网络设置 1.bridged(桥接模式) 如果网络中能提供多个IP地址,则使用桥接方式.虚拟机与主机的IP地址彼此独立. 2.NAT(网络地址转换模式) 如果只能提供一个IP地址,则使用NAT模式.但外部计算机不能访问虚拟机. 3.host-noly(主机模式) 如果主机没有连接外部网络,则使用主机模式.使虚拟机与主机相互通信. Linux网络设置 1.ifconfig 查看网卡 2./etc/init.d/network restart 重启网卡 3.service Network…
Linux中常见的文本编辑器有Vi和Emacs Vim有3中工作模式:命令行模式.插入模式.底行模式 1.键入i进入插入模式 2.键入[Esc]退回到命令行模式 3.键入:进入底行模式,再键入wq保存退出 命令行模式 yy:复制 [n]yy:复制n行 p:粘贴 dd:删除 [n]dd:删除n行 /string:查找字符串 gg:移动到文件头 G:移动到文件尾 u:撤销 底行模式 :wq保存退出 :w [filename] 另存为 :set nu 显示行号 :set nonu 取消行号…
Linux文件系统 bin目录:可执行的程序 boot目录:与Linux启动相关的文件 dev目录:设备以文件的方式存放 etc目录:配置文件 home目录:用户文件 lib目录:与库相关的文件 root目录:root用户文件 sbin目录:二进制可执行文件 tmp目录:临时文件 工作模式 切换到字符模式 init3 切换到图形化模式 init5 重要热键 [Tab] 自动补齐 [Ctrl]+c 终止正在运行的程序 [Ctrl]+d 退出字符界面 用户 用户信息保存在/etc/passwd中 r…
[ARM处理器工作模式] 处理器工作模式 1.User(urs):用户模式,linux应用程序运行在用户模式 2.FIQ(fiq):快速中断模式 3.IRQ(irq):中断模式 4.Supervisor(svc):系统保护模式,linux内核运行在系统保护模式 5.Abort(abt):异常模式 6.Undefined(und):未定义指令模式 7.System(sys):系统模式 [ARM寄存器详解] ARM寄存器(37个) 通用寄存器(31个) 1.未分组通用寄存器(R0-R7) 2.分组通…
ARM芯片:2440(arm9) 6410(arm11) 210(cortex-A8) ARM核:arm9(arm-v4) arm11(arm-v6) cortex-A8(arm-v7) 指令架构:arm-v4 arm-v6 arm-v7 在一个芯片中最重要的是ARM核 ARM核演变 ARM经典: ARM7.ARM9.ARM11 Cortex系列: 1.Cortex-M:应用于工控 2.Cortex-R:应用于实时 3.Cortex-A:应用于多媒体 ARM芯片对比 芯片 2440 6410 4…
引导安装步骤 相关介绍: 开发板软件构成:Bootloader.嵌入式操作系统.嵌入式文件系统 JTAG接口常用于对flash等器件进行编程,常见的JTAG下载线有并口和USB接口两种 硬件连接: 1.Flash选择开关拨到Nor Flash启动 2.连接好JLink与开发板 3.打开开发板电源 软件安装: 1.安装JLink驱动 2.连接开发板 J-Flash->file->Open Project->2440.jflash->Target->Connect 3.下载辅助安…
系统资源 处理器:三星 S3C2440A ARM9 内存:64M SDRAM Nor Flash:2MB Nand  Flash:256MB LCD:3.5寸 分辨率320*240 启动模式 从nand flash启动 从nor flash启动 操作系统 支持类型:Linux和WinCE 安装位置:nand flash 系统安装: 1.通过JTAG下载引导程序到nor flash中 2.通过usb下载操作系统到内存中 3.通过内存烧写操作系统到nand flash中…
关闭MMU和CACHE 1.Cache是一种容量小,但存取速度非常快的存储器,它保存最近用到的存储器中数据的拷贝.按功能分为ICache(指令Cache)和DCache(数据Cache) 2.虚拟地址就是程序中使用的地址:物理地址就是物理存储单元中实际使用的地址.虚拟地址可以让进程使用更大的空间.MMU的作用就是完成虚拟地址到物理地址的转换 3.在处理器初始化阶段,为防止意想不到的错误,需要暂时关闭MMU和Cache 4.MMU和Cache都是通过CP15协处理器的R1(control regi…
[设置svc模式] 设置CPU为SVC模式 1.因为初始化系统需要有很高的权限,SVC模式具有该权限,所以首先要使系统工作在SVC(0b10011)模式 2.设置cprs为0xd3(0b11010011)表示设置处理器为svc模式,并且屏蔽irq和frq /* *名称:set_cpu_to_svc *描述:设置CPU为SVC模式 */ set_cpu_to_svc: mrs r0, cpsr bic r0, #0x1f orr r0, #0xd3 //F 1,I 1,M[4:0] 10110 m…
2440启动流程 启动方式:nor flash启动.nand flash启动 地址布局: 选择nor flash启动时,SROM(nor flash)地址为0x00000000 选择nand flash启动时,SRAM(SteppingStone)地址为0x00000000 SDRAM(内存)地址为0x30000000 启动流程: 1.第一阶段 首先,处理器复制nand flash的BL1(前4KB)到Steppingstone中,执行BL1(bootloader第一部分).然后,复制BL2(b…
协处理器作用 协处理器用于执行特定的处理任务,如数学协处理器可以执行控制数字处理,以减轻处理器的负担.ARM处理器最多可以支持16个协处理器,其中CP15是最重要的一个协处理器 CP15的作用 CP15是系统控制协处理器,通过额外的寄存器可以控制cache,MMU,系统时钟等功能 访问协处理器 1.CP15有16组寄存器,通过mcr和mrc指令来访问协处理器里的寄存器,从而达到访问协处理器的目的 2.通过datasheet中的CP15 register map summary可以查找到相关的寄存…