OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3252|回复: 2

学习实践LInux C编程应用摘录

[复制链接]

0

主题

7

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2021-11-11
在线时间
8 小时
发表于 2022-1-6 12:14:30 | 显示全部楼层 |阅读模式
本帖最后由 Trundeng 于 2022-1-12 20:51 编辑

一、前提.实践《【正点原子】STM32MP1嵌入式Linux C应用编程指南V1.0.pdf》
     1.此文档,学习到了一个理念:“Linux系统下,一切皆文件”。
     2.学习之前,自个定位的一个理念:在Linux下,用相当多的功能、特性。

二、摘录一,应用编程概念
     1.“系统调用(system call)其实是 Linux 内核提供给应用层的应用编程接口(API),是 Linux 应用层进入 内核的入口。精通接口规则,可以无视硬件做对接做设计。脱离应用编程接口将无法使用操作系统。”
     待续。。。。
三、摘录二,文件IO基础
     1.“硬件操作代码与用户逻辑代码没有隔离,没有操作系统支持,代码编译之后直接在硬件平台运 行,俗称裸跑”。” ps,学艺不精裸跑多了,容易系统崩溃。
      2.很多函数存在版本差异。要确定Linux系统glibc版本。(ls -l libc.so.6)
              相关函数如果有版本更新,出现矛盾,要习惯用 man来查细节。


     3.个别函数推荐
           a.错误打印使用 perror.
           b. main 函数使用 return 和_exit() 的区别
            c. pread  ,  pwrite 函数使用。
       ps:在文档48页,简单入门VS软件。个别推荐的函数基于高版本的Linux系统,与时俱进。
       待续。。。。
四、摘录三,应用。
        1.应用一体验玩直接写硬盘的例程。对比写40M的文件,还是能明显看到性能差别。                 “使用 time 命令得到的程序运行时间大约是 0.13~0.14 秒左右,相比直接 I/O 方式的 2.7 秒,时间上提升
           了 20 倍左右(测试大小不同、每次写入的大小不同,均会导致时间上的差别),原因在于直接 I/O 方式每
           次 write()调用均是直接对磁盘发起了写操作,而普通方式只是将用户空间下的数据拷贝到了文件 I/O 内核
           缓冲区中,并没直接操作硬件,所以消耗的时间短,硬件操作占用的时间远比内存复制占用的时间大得多”
         使用我的电脑实测:直接I/O方式 0.48秒,普通方式0.058秒。不同电脑配置差别如此大。=============往下的学习基于 【正点原子】STM32MP1嵌入式Linux C应用编程指南V1.4.pdf
      2.初步实践“Linux一切皆文件的理念”           如图所示,仿佛玩出密码要求包含特殊字符的内涵
           









应用一配图.png
应用2-实践Linux一切皆文件理念.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2021-11-11
在线时间
8 小时
 楼主| 发表于 2022-1-6 12:15:22 | 显示全部楼层
本帖最后由 Trundeng 于 2022-1-10 08:21 编辑

如应用一截图所示。同样的软件,硬件的差别,实测结果差别非常大。IT软件,与嵌入式软件还是有很多区别的,曾经有个前辈分享:兼容性是嵌入式永远的痛。
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2021-11-11
在线时间
8 小时
 楼主| 发表于 2022-1-12 20:53:09 | 显示全部楼层
应用二测试代码与执行文件。时间关系代码为文档直接复制未做润色

C与执行文件.zip

4.19 KB, 下载次数: 1

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-6-9 22:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表