【第四篇】 嵌入式 Linux 应用开发基础知识

本贴最后更新于 309 天前,其中的信息可能已经时移世改

37.4_1-1_交叉编译 Hello 程序

image

  • 开发板通过串口连接到 PC,通过桥接网卡连接到 Ubuntu
  • PC 通过 SSH 连接到 Ubuntu
  • Ubuntu 和开发板使用 NFS 传输文件

image

  • 具体编译过程参考《4.3》和《4.2》

38.4_1-2_hello 程序的引申

image

39.4_2-1.GCC 编译过程

image

image

.c 和.h 预处理之后得到.i 文件,编译成汇编码,通过机器码解析,众多的机器码链接成一个 APP。

image

image


  • 可以看到预处理之后的文件。

image

image

  • 语法错误是在编译过程中发现的。

40.4_2-2.GCC 常用选项_newnew

image

  • 编译的头文件在工具链的库里面。​imageimage​​

  • 指定头文件image不加会提示会报错image

  • 静态库与动态库

    ​​imageimage

  • 总结:image

  • 查看路径:​image

    • 头路径​image
    • 库路径​image

42.4_3-2.Makefile 的引入及规则

​​image

imageimage


image

imageimage


image​​​

43.4_3-3.Makefile 的语法

image


通配符

image

image


image


假想目标

image


即使变量与临时变量

image

image

例子

image

image

44.4_3-4.Makefile 函数

  1. 空格隔开的词替换成其他形式

image

imageimage

  1. 取出格式的值

imageimageimage​​​

  1. 替换

​​imageimageimage​​

45.4_3-5.Makefile 实例_newnew

image

imageimage​​

image


把警告变成了错误,并且指定在当前目录查找头文件,同时也会去 gcc 工具链查找头文件。

imageimage​​

46.4_3-6.通用 Makefile 的使用

imageimage​​

例程:

额外编译:

image

image

单独编译:

image

47.4_3-7.通用 Makefile 的解析

image

image

image

48.4_4-1_文件 IO_读写文件

image

image

怎么写 SD 卡

image

将 sd 卡挂载到某个分区,访问这个分区就是访问 SD 卡。

虚拟文件

image

特殊文件

image

image

主设备号确定哪个驱动(iic),次设备号对应不同的硬件。

main

image

参数用空格隔开

man 用法

image

mmap copy

image

  • mmap 可以把普通文件的内容映射给应用程序
  • 也可以把驱动程序中的某一块内存映射给应用程序(例如显存)

49.4_4-2_文件 IO_内核接口

image

image

FAT32/ EXT4 是指文件系统,块设备是啥建议再看看之前的视频。

块设备就是硬盘磁盘这些物理储存器。

FAT,EXT4 都是对文件的一种管理技术。

image

字符设备与块设备的区别

image

50.4_4-5.Framebuffer 应用编程

image

image

描点

image

image

测试

image

image

在 ubuntu 上编译,拷贝程序到 nfs,开发板挂载 nfs,执行。

51.4_6-1.字符的编码方式

image

image

大端模式

image

image

正常 A 是:0x0041

大端模式:0x00 0x41(权重小在后)

小端模式:0x41 0x00(权重小在前)

52.4_6-2.ASCII 字符的点阵显示

位置确定

image

数组

image

image

数组是根据 ASCII 来取值的。

53.4_6-3.中文字符的点阵显示

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...