嵌入式Linux的开发工具

vim、gcc、gdb、make
vim(文本编辑器):学会使用和如何配置vim
gcc(编辑器):学会制作动态库和静态库及使用和区别;
gdb(调试器):设置断点、单步执行、调试内存错误;
make(工程管理器):编写makefile文件;

Linux文本编辑器

vim–功能最强大文本编辑器—摆脱鼠标
vi–vim–gvim:命令模式(nyy\p\ndd\u)、插入模式(i\a)、底行模式(shift+:)
如何配置vim?etc\vim\vimrc
IDE(集成开发环境):vscode

嵌入式Linux开发工具gcc

编译器:gcc (GNU cc)

1、gcc特点(GNU工具、交叉编译器arm-linux-gcc)

什么是交叉编译器?
源文件到可执行文件需要经历哪几个步骤?
预处理、编译、汇编、连接
(PC:x86)
hello.c gcc hello.c a.out./a.out—>Linux手机(ARM)
交叉编译:在当前CPU平台下编译出在其他CPU平台下可执行的代码

系统移植

宿主机(pc)----(交叉编译)---->目标机(开发板、手机)

gcc的编译选项

预处理:头文件展开,宏替换,条件编译-E -I -D
编译:将预处理文件编译成汇编文件.s -S
汇编:将汇编文件编译生成目标文件.o -C
链接:建立符号表-- 可执行文件a.out
-o :重命名可执行文件
<>:搜索路径在系统头文件目录(usr/include)
" ":搜索路径先在当前目录查找,找不到再到系统的头文件目录查找。

一、gcc常用编译选项

-E -S -c -o -I -D
-Wall -w
-O1 -O2 -O3

二、静态库.a和动态库的制作.so

**1、什么库文件?**保存函数和变量(仓库)
特点:保存的函数与变量,只能使用但不能看到其实现;
2、Linux库文件:
静态库:在编译阶段加载;(将库文件的代码加载到源文件)
动态库:在运行时加载;
生成的可执行文件存在区别(优缺点)
1、使用静态库生成的可执行文件大于动态库生成的可执行文件(程序运行占用内存较多)
2、使用静态库生成的可执行文件难以升级;使用动态库生成的可执行文件易于升级;
3、使用静态库生成的可执行文件运行速度快;使用动态库生成的可执行文件运行速度慢;
4、使用静态库可执行文件里的代码容易部署,动态库难以部署;
3、Linux库文件存放路径:
/lib:存放的系统运行所需要的库;
/usr/lib:存放的是程序运行所需要的库;
如何制作静态库?
1、将需要保存的函数所在的文件编译生成目标文件 gcc -c add.c —>add.o
2、静态库的制作工具:ar
ar rcs(不存在就创建,存在就更新) 库名 目标文件名
ar rcs libadd.a add.o
3、使用
gcc 源文件 -l库名 -L库存放的路径
gcc main.c -ladd -L -o add
如何制作动态库?
gcc -shared -fPIC 源文件 -o libcal.so
gcc -shared -fPIC add.c sub.c -o libcal.so
使用:
第一种方法:
cp libcal.so/usr/lib
gcc main.c -lcal
第二种方法:
gcc main.c./libcal.so -o cal

嵌入式课程设计总结(三)相关推荐

  1. c语言电子时钟课程设计报告,电子时钟嵌入式课程设计报告

    <电子时钟嵌入式课程设计报告>由会员分享,可在线阅读,更多相关<电子时钟嵌入式课程设计报告(19页珍藏版)>请在人人文库网上搜索. 1.合海大学计算机信息工程学院(常州)课程设 ...

  2. alin的学习之路:嵌入式课程设计总结(基于Linux的Qt版MP3播放器)

    嵌入式课程设计总结(基于Linux的Qt版MP3播放器) 废话不多写直接上图上代码,其中有很多不规范的地方,希望大佬们指正. 1.课设题目 设计一个MP3播放器,要求:使用Linux下的madplay ...

  3. 课程设计报告linux小游戏,嵌入式课程设计报告---贪吃蛇游戏.doc

    嵌入式课程设计报告---贪吃蛇游戏 嵌入式系统课程设计报告书 课题题目:贪吃蛇游戏 学 院:核自院 班 级:测控三班 学 号:9 姓 名: 马文铂 第一章 引言- 2 - 1.1关于题目- 2 - 1 ...

  4. 用linux设计99乘法表,嵌入式课程设计九九乘法表

    <嵌入式课程设计九九乘法表>由会员分享,可在线阅读,更多相关<嵌入式课程设计九九乘法表(8页珍藏版)>请在人人文库网上搜索. 1.安阳师范学院计算机与信息工程学院嵌入式系统课程 ...

  5. 聊城大学理工学院-嵌入式课程设计-stm32f407小车

    最近两天有点偷懒了,什么都不想做,所以今天不接着弄上次的GPS模块了,今天就分享点别的-----大三时做的嵌入式课程设计.当时做好后也算是好几个班流传最广的版本了,所以多少还是很有点成就感的. 实现的 ...

  6. 流水灯嵌入式课程设计(包含UCOSII的无仿真和无UCOSII的有仿真)

    目录 流水灯设计原理 1.基于STM32F103R6Tx的流水灯设计,先初始化管脚,编写LED.KEY按键和定时器的初始化函数. 2.按键的判断设计分为两部分:开始/停止按键和设置时间按键. ① 开始 ...

  7. 嵌入式课程设计 使用 tini4412配合交叉编译环境 完成串口助手的制作(已解决主机与设备通过网线FTP连接和交叉编译环境的部署问题)

    嵌入式课程设计 使用 tini4412配合交叉编译环境 完成串口助手的制作 注:还没有完全写完,不过主要过程都在中间了 摘要 本文主要介绍一下五个部分: tini4412的系统烧写 虚拟机上交叉编译环 ...

  8. HDU操作系统课程设计实验三

    HDU操作系统课程设计实验三 一.设计目的 二.内容要求 三.实验内容 信号量的使用 1.实现一个模拟的shell,基本功能加find.grep命令 2.实现一个管道通信程序,基本功能加有名管道通信 ...

  9. 嵌入式 课程设计指导书

    <嵌入式体系结构与接口技术> 课程设计指导书 题目1:电子计算器 一.设计任务 设计一个具有加减乘除功能的计算器,带三角函数.指数函数.对数函数计算功能,科学计数法表示.  二.任务分析 ...

  10. 用英文给嵌入式计算机下定义,嵌入式课程设计报告--嵌入式系统项目设计.doc

    河海大学计算机与信息学院(常州) 课程设计报告 题 目 嵌入式系统项目设计 专业.学号 授课班号 277704 学生姓名 同组学生 指导教师 完成时间 2011年6月 课程设计(报告)任务书 (理 工 ...

最新文章

  1. 互联网高薪的原因、现状、未来,还值不值得进来?
  2. egg.js连接mysql数据库遇到的问题
  3. CentOS 6.3安装Nginx开启目录浏览、下载功能
  4. 泰晤士高等教育亚洲大学排行榜发布:清华登顶榜首
  5. Linux打开bashrc权限不够,bash-4.2$ bash: /home/test/.bashrc: 权限不够
  6. Java GregorianCalendar setTimeZone()方法与示例
  7. 《jquery实战》javascript 必知必会(1)
  8. 在命令行启动vscode
  9. H - Cow Contest(floyd的传递闭包性)
  10. 2018年软件评测师备考之路
  11. 遗传算法工具箱_含约束条件的遗传算法在连续催化重整优化操作中的应用
  12. (测试可用)针式打印机打印WEB页面字体不清晰,解决方法
  13. 测井数据处理matlab,如何用matlab从文本文件中选择性读取测井曲线
  14. 为何电脑上不显示手机连接服务器,为什么我电脑都能连接上vpn手机却连不上
  15. STEAM 教育相关书籍
  16. 一只青蛙跳向三个台阶_青蛙跳台阶-递归思想解算
  17. 彻底弄懂乒乓操作与并行化
  18. hibernate使用Query进行查询
  19. 种基于局域网的点对点语音通信
  20. 脑机接口技术使瘫痪病人重获运动能力,4D打印技术已经到来!|技术前沿洞察...

热门文章

  1. 佳能ip110 linux驱动下载,佳能iP110驱动程序官方版
  2. Linux 用户管理工具介绍
  3. 西瓜书+南瓜书---打卡(第二次)
  4. 【深度学习笔记】神经网络模型及经典算法知识点问答巩固(算法工程师面试笔试)
  5. Linux —— 多线程
  6. Uboot中的DM驱动模型
  7. 【关于四足机器人那些事】腿部运动学建模(三维)
  8. Whale帷幄 - 新零售数字化服务商 新零售与数字化转型
  9. System.Diagnostics.Process 用处
  10. VBScript脚本语言基础