搜索
bottom↓
回复: 29

求助linux应用开发的方法

[复制链接]

出0入4汤圆

发表于 2021-1-21 10:29:53 来自手机 | 显示全部楼层 |阅读模式
最近在学习linux 准备从应用程序下手,目前学习了原子的linux,但是还是没弄明白linux的应用程序,如果不上qt什么的,怎么写应用程序呢。难道和单片机一样 在应用程序里面open对应驱动,然后write 或者read 这个驱动接口吗,写一个while或者什么的。求大神给指点指点,有点疑惑。

出0入10汤圆

发表于 2021-1-21 10:45:00 | 显示全部楼层
QT只是GUI而已。

出0入4汤圆

 楼主| 发表于 2021-1-21 10:49:37 来自手机 | 显示全部楼层
硬邦邦 发表于 2021-1-21 10:45
QT只是GUI而已。

这个我知道,我还是没想明白  这个应用程序写发不会和单片机一样,打开驱动 读接口,如果是这样linux有什么优势呢?

出0入22汤圆

发表于 2021-1-21 10:50:56 | 显示全部楼层
经典的GCC不是很好用吗?
linux下好多都是命令行,使用gcc编译就好了。
如果需要一个ide,可以考虑安装一个eclipse
当然,makefile耍得好,手中无剑,心中有剑。啥ide都是浮云。

出0入10汤圆

发表于 2021-1-21 10:51:52 来自手机 | 显示全部楼层
应该是和单片机一样。

出0入0汤圆

发表于 2021-1-21 10:54:06 | 显示全部楼层
可以试试golang

出0入84汤圆

发表于 2021-1-21 10:54:32 | 显示全部楼层
用什么无所谓,关键是代码, VSCODE,eclipse,NOTEPAD,QT都只是个壳子而已,都可以用,核心是C/C++代码和GCC编译器。
linux优势主要是软硬分离,还有数不尽的开源代码,基本你遇到的需求90%功能都可以从开源代码里找到

出0入84汤圆

发表于 2021-1-21 10:55:06 | 显示全部楼层
当然python之类的语言都可以。

出0入4汤圆

 楼主| 发表于 2021-1-21 10:55:58 来自手机 | 显示全部楼层
boyiee 发表于 2021-1-21 10:54
用什么无所谓,关键是代码, VSCODE,eclipse,NOTEPAD,QT都只是个壳子而已,都可以用,核心是C/C++代码和GCC ...

我是想知道 应用程序开发和单片机开发是一样的吗? 就是打开驱动  读写等等什么的?

出0入63汤圆

发表于 2021-1-21 10:56:38 | 显示全部楼层
Linux 下大多数都抽象成文件操作

出0入10汤圆

发表于 2021-1-21 10:59:53 来自手机 | 显示全部楼层
本帖最后由 Bunny_Girl 于 2021-1-21 11:03 编辑

qt只是gui,可以不用gui纯命令行cli的
设备驱动,简单说,就是如楼主位,open、write、read,当然具体更复杂了

以串口为例,帮你找了两篇教程:
Linux下串口通信详解(上)打开串口和串口初始化详解 https://blog.csdn.net/specialshoot/article/details/50707965
Linux下串口通信详解(下)读写串口及关闭串口 https://blog.csdn.net/qq_39436605/article/details/80894270

敲代码的话,vim就够用了,编译就gcc

出0入4汤圆

 楼主| 发表于 2021-1-21 11:01:24 来自手机 | 显示全部楼层
yplin27 发表于 2021-1-21 10:56
Linux 下大多数都抽象成文件操作

大概理解为,其实不上QT什么的 直接比如lcd显示什么的就是open屏幕的驱动,然后 write对应内容

出0入0汤圆

发表于 2021-1-21 11:03:57 | 显示全部楼层

没有高级功能需求(开服务器之类的)的话,单片机就足够了。如果需求都不清楚,为了上linux 二上linux,引入的问题会更多。
虽说linux上开源源码不少,但是这样开源代码移植起来,也不不会特别容易。依赖问题需要解决,有库版本冲突的话,就非常酸爽了。

出0入24汤圆

发表于 2021-1-21 11:30:14 来自手机 | 显示全部楼层
我之前用eclipse开发linux下的c,各种库弄得头大,后来用了golang就爽歪歪了。

出0入63汤圆

发表于 2021-1-21 11:43:43 | 显示全部楼层
Romate 发表于 2021-1-21 11:01
大概理解为,其实不上QT什么的 直接比如lcd显示什么的就是open屏幕的驱动,然后 write对应内容 ...

我的理解是 Linux 驱动可以选择把自己的功能抽象成文件系统中的一个或多个文件,用户态的应用通过读写这些文件来跟驱动交互,所以你open的不是驱动,而是抽象出来的文件,譬如往某个文件写1,可以控制某个io上拉;往另一个文件写1,则可以控制某个io的输出值

LCD 内容应该是可以通过操作一个抽象出来的 FrameBuffer 文件

出40入0汤圆

发表于 2021-1-21 11:48:46 | 显示全部楼层
买个树莓派玩吧

出5入84汤圆

发表于 2021-1-21 12:36:41 | 显示全部楼层
Romate 发表于 2021-1-21 10:55
我是想知道 应用程序开发和单片机开发是一样的吗? 就是打开驱动  读写等等什么的? ...

是的,你要是用linux干这个完全可以。问题是单片机能干的事,你还花钱上linux干什么。

出0入10汤圆

发表于 2021-1-21 13:05:14 来自手机 | 显示全部楼层
上linux是为了更方便快捷吧,有很多现成的东西可用,不必重复造轮子,比如网络服务器方面就很适合了
就类似为什么要用python
如果用单片机开发的复杂程度时间成本都ok的,就没必要上linux了

出0入8汤圆

发表于 2021-1-21 13:47:12 | 显示全部楼层
linux工资高

出0入37汤圆

发表于 2021-1-21 14:36:50 | 显示全部楼层
Romate 发表于 2021-1-21 10:49
这个我知道,我还是没想明白  这个应用程序写发不会和单片机一样,打开驱动 读接口,如果是这样linux有什 ...

操作系统的目的有两个,一个是通过驱动程序屏蔽硬件细节,不论是圆口鼠标还是u口鼠标,在操作系统这里都是鼠标,不用程序员关注底层硬件,实现分层开发。二是多任务,用软中断代替硬中断,多个进程可以同时运行,便于网络和图形界面这些需要大量占用系统时间的应用和客户应用同时运行。

gui和网络是两个典型需要操作系统的场合。其他情况单片机大多数能应付。

出0入228汤圆

发表于 2021-1-21 18:12:47 来自手机 | 显示全部楼层
直接买个树莓派吧,各种应用,各种实现方式,多搞点小项目就明白了。为什么非要树莓派呢,因为是同一硬件平台,全世界的人都在上面折腾。软件建议golang.

出870入263汤圆

发表于 2021-1-21 19:55:31 | 显示全部楼层
Bunny_Girl 发表于 2021-1-21 13:05
上linux是为了更方便快捷吧,有很多现成的东西可用,不必重复造轮子,比如网络服务器方面就很适合了
就类似 ...

你是不是盗号上论坛的?
总感觉哪里不对劲……

出0入10汤圆

发表于 2021-1-21 20:18:12 来自手机 | 显示全部楼层
armstrong 发表于 2021-1-21 19:55
你是不是盗号上论坛的?
总感觉哪里不对劲……

额,为什么呢?
因为觉得回复不专业么?—— 的确是业余的并不专业
不过也不至于因此觉得是盗号的啊

出870入263汤圆

发表于 2021-1-21 21:04:50 | 显示全部楼层
本帖最后由 armstrong 于 2021-1-21 21:06 编辑
Bunny_Girl 发表于 2021-1-21 20:18
额,为什么呢?
因为觉得回复不专业么?—— 的确是业余的并不专业
不过也不至于因此觉得是盗号的啊 ...


是因为回复比较专业,所以感觉不太适应人设。
看来你真的堕落了,竟然回答技术问题!从此对你更加五体投地!

出20入21汤圆

发表于 2021-1-22 09:36:09 来自手机 | 显示全部楼层
armstrong 发表于 2021-1-21 21:04
是因为回复比较专业,所以感觉不太适应人设。
看来你真的堕落了,竟然回答技术问题!从此对你更 ...

关键她还是个女的,你说气人不

出0入8汤圆

发表于 2021-1-22 09:42:47 | 显示全部楼层
如果有开发过 windows 的桌面应用程序,那就想想 windows 是怎样的开发模式,就是类似的了。

出0入4汤圆

 楼主| 发表于 2021-1-22 14:09:09 来自手机 | 显示全部楼层
security 发表于 2021-1-22 09:42
如果有开发过 windows 的桌面应用程序,那就想想 windows 是怎样的开发模式,就是类似的了。 ...

桌面之前做过c# 太爽了,简单的直接调库,比单片机easy多了。非常感谢各位的指教,目前应用程序编写已经有大概思路

出0入0汤圆

发表于 2021-5-25 12:11:41 | 显示全部楼层
Linux应用开发相对单片机思路得转变一下。一般当程序分几个模块,一个模块一个线程,采用数据队列耦合。以前我用gcc,现在还是建议用qt。qt可不只是gui开发哦!

出0入20汤圆

发表于 2021-5-25 12:17:24 来自手机 | 显示全部楼层
wurst 发表于 2021-5-25 12:11
Linux应用开发相对单片机思路得转变一下。一般当程序分几个模块,一个模块一个线程,采用数据队列耦合。以 ...

可以快进到golang开发

出0入0汤圆

发表于 2021-5-25 12:24:05 来自手机 | 显示全部楼层
现在c#也可以开发linux
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 -- 东莞阿莫电子网站 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2022-9-28 14:01

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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