...现在想学嵌入式,软件开发与嵌入式有什么区别,哪个工作好些...
发布网友
发布时间:2024-10-20 15:21
我来回答
共3个回答
热心网友
时间:2024-12-01 05:44
嵌入式软件开发和其他软件开发的区别
OHY 2006-12-11
1、嵌入式系统开发
--平台种类繁多。
--资源受限。
--专用系统。
--需要与底层的硬件设备进行通信和交互操作。与设备相关。
--数要是对设备控制和操作。
--对编译器的要求较高,不同处理器平台有各自的编译器和调试软件。
--需要专门的调试工具,尤其是一些专用设备。
--对代码的质量要求高,要求可执行的程序占用的存储空家少。
--由于多任务同时运行,产生的错误比较多,因此在稳定性和性能上要求很高。
2、通用PC系统开发
--平台种类较少。
--资源不受限制。
--通用系统。
--与底层操作通过系统软件的接口函数API来实现,与设备无关。
--主要是数据处理和UI界面处理。
--对编译器没有特别的要求,通常使用一些通用的编译器和调试软件。
--不需要专门的调试工具。
--对代码的质量没有特别的要求,在存储空间上也没有太多的限制。
--在稳定性和性能方面没有嵌入式系统要求那么严格。
在实际中,我发现嵌入式软件开发有很多地方和其他的应用软件是大不一样的,比如说,在嵌入式软件中对位的操作用的是非常之多,很大的一个原因是很多接口控制芯片为了减少地址线或简约操作,很多控制都是用位来表示的,还有就是要注意的编译器的优化问题,对于一些端口或者的实时变化的变量,在定义声明的时候一定要将其声明为volatile,一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份,否则会有灾难性的错误。还有就是嵌入式软件大部分是对很多接口芯片的操作,比如说常用的IIC接口、SPI接口、USB接口、RS232接口、红外接口、LCD控制器接口、触摸屏接口、以太网、can总线等等,还需要熟悉一些常用器件的确定时序,例如AD转换器和DA转换器、电源控制芯片、信号发生芯片。有时候做的系统比较大还需要了解其他嵌入式芯片的接口很如何兼容,简单的一个例子就是,假若使用ARM作为控制处理器,控制输入输出和显示,使用DSP作为数据的高速处理,使用FPGA作为数据的采集和存储器控制以及一些AD的控制,那么就需要通过嵌入式软件将三者接口联系起来。在其他的软件设计中,我想一台好点PC电脑,装上几个软件就控制工作了,但是对嵌入式软件来说,很多时候用到很多专门的软件和设备,例如JTAG口代理软件,ADS1.2编译环境,什么串口调试助手和以太网检测工具啊,有时候要测试硬件上的问题,那就需要一台示波器,最好是多通道高速的,至少电压表得有一个,好一点的有信号发生器、逻辑分析仪等等。对于测量控制领域我觉得稍微大一定的系统使用ucos+ucgui很好的,linux的实时性不是很好,而且入门操作都不太容易,但是对于实时性要求不太高的,用linux也是一个非常好的选择。
热心网友
时间:2024-12-01 05:50
方向吗?这两个哪个好些
热心网友
时间:2024-12-01 05:46
嵌入式开发也有嵌入式软件开发和硬件开发的,两者是一个包含关系。
现在嵌入式开发在大城市还是蛮吃香的。
本人就是从事嵌入式软件开发的。