在ARM开发板的嵌入式linux系统上运行的QT程序,必须得要在linux里用QT编吗
嵌入式中最重要的应用就是linux,linux就是用C语言实现的,你要是懂linuxc的话,那么做嵌入式这行业门槛肯定是没有问题了。QT只是其中的一个小小部分,很多时候在嵌入式的工作中是不需要的,因为有很多的嵌入式产品没有GUI,只用命令行就可以实现了。而且现在做GUI的工具也很多,QT只是其中一种。我的意见是,向linux内核方向发展,这可以最大利用你的既有优势。
UCLINUX和linux有什么区别?
Linux是一种很受欢迎的操作系统,它与UNIX系统兼容,开放源代码。它原本被设计为桌面系统,现在广泛应用于服务器领域。而更大的影响在于它正逐渐的应用于嵌入式设备。uClinux正是在这种氛围下产生的。在uClinux这个英文单词中u表示Micro,小的意思,C表示Control,控制的意思,所以uClinux就是Micro-Control-Linux,字面上的理解就是"针对微控制领域而设计的Linux系统"。
Linux中的 /#和#的区别
Linux中的 /#和#的区别为:执行路径不同、使用用户不同、切换不同。一、执行路径不同1、/#:/#的路径目录是根目录,在绝对路径根目录下执行操作。2、#:#的路径目录是家目录,在相对路径家目录下执行操作。二、使用用户不同1、/#:/#针对的使用用户为系统默认创建的用户,即root用户。2、#:#针对的使用用户为于非系统默认创建的该用户。三、切换不同1、/#:/#可以直接切换到其他路径目录下,不需要退回到上级路径目录。2、#:#不可以直接切换到其他路径目录下,需要退回到上级路径目录。
linux中%什么意思
在linux系统中在命令行中Bash中特有的字符串替换方式。
其中%是linux中shell中一般代表变量,其中linux系统中有系统变量和自定义变量。
其中有些事系统自带的变量如使用env命令显示所有的环境变量,还有一些是自己编写的变量,具体含义需要提前赋值。
其中系统变量如系统提供的参数称为位置参数。参数的值可以用$N得到,N是一个数字,如果为1,即$1。如果是%表示则为%1.
我举一个列子帮助理解:
假设一个变量:
x=abcdabcd
那么:
echo ${x/a/b} # 只替换第一个a为b,结果:
bbcdabcd
%echo ${x//a/b} # 将所有a替换为b,结果:
bbcdbbcd
其中不可以使用正则表达式, 只能用 * ? 等通配符。
编译uClinux: sudo make menuconfig,make dep,make后出现如下问题:
由于你的图片我看的不是很清晰,只能看见是USER中的编译好像是没有定义,你可以先试一下不选这个目录中的程序,在make menuconfig 后看看是不是在busybox中有这个程序,如果是自己写的程序,要把它编译到内核,你可以先试试不编译经内核,如果没得问题,就表示内核编译时没有问题,而是应用程序的问题,再去修改应用程序,看看是不是有什么没定义,耐心找找,我相信,通过你的努力,一定能够解决此类问题的。
哪种嵌入式操作系统好些,linux还是uc/os?
主要看项目需求,如果项目对于体积没什么要求,那就用linux,linux比较通用,兼容的东西很多。
资源很丰富,大量的GNU开源支持,并且讨论使用的人也很多,遇到问题基本在网上都能搜索到。
如果项目对体积要求比较小,开发人员又对单片机,uc/os熟悉的话,那就用uc/os,但是它在大量的协议方面,你会发现好多没有现成的,需要移植,有很多甚至需要自己写,它在对网络协议,图形算法等大量方面,都不及linux。
有一块stm32f103c8的板子,想跑uclinux,不想再买有更大的rom和ram的板子,如何外接rom和ram来跑它?
重新买一个板子吧,你的stm32f103c8跑不了uclinux,原因是:你的芯片没有外部总线接口吧?你也知道uclinux需要至少4M(仅仅运行文件系统+内核都要吃掉快1M的SRAM),stm32 的内部flash是能够保存uclinux内核文件的,但是sram远远不够,你只能买一块板子,stm32的是armv7架构的工控芯片,不适合跑linux,uclinux(有外部总线的能跑uclinux),你还是买一块6410(arm11)的直接学linux更好,这是我给你的建议。
简述linux和uclinux进程管理上的区别
1. 没有实际的存储器保护(一个错误的环节可以让整个系统停机)
2. 没有交叉(fork)系统调用
3. 只有简单的内存分配
4. 其它一些较小的区别
存储器保护对大多数嵌入式系统来说不是很大的问题。Linux是一个很稳定的平台,尤其是在嵌入式系统中,软件崩溃的情况很少发生。
第二点的问题要大一些。在为UNIX和Linux编写的软件中,开发者常常使用fork系统调用来实现并行处理,fork调用可以准确拷贝原始程序并同时予以执行。为了提高效率,它使用MMU将父程序映射到子程序,并只拷贝写入子程序的内存区。因此uClinux不能提供fork系统调用。它提供vfork,一种特殊版本的fork,在vfork程序中当子程序执行时父程序即会终止。 因此,使用fork系统的软件在使用uClinux支持的vfork或线程时必须重写,因为他们使用相同的内存空间,包括堆栈。
就第三点来说
,一般情况下支持uClinux的malloc系统不会有问题,但是,有些时候必须进行小的调整。大部分适用于UNIX和uClinux的软件(可在http://freshmeat.net上找到此类软件)能够直接在uClinux上编译,其它的则可使用微小的移植或调整(tweaking)。 只有很少的应用软件不能在uClinux上运行,其中大部分不能作为嵌入式应用软件。