请各位兄弟讨论一下,有谁用C语言开发过嵌入式操作系统!!!!!!

时间:2021-09-01 19:03:32
各位兄弟:
    我现在要做一个电表嵌入式系统的软件,因为没有经历过,请做过的 朋友指点一下
和在WINDOWS系统的软件有何不同,需要注意些什么?编译器什么的?

27 个解决方案

#1


嵌入式系统,的开发要看你所用的操作系统,如果用linux会非常简单,就像写dos程序,用gcc就行,在一个完整的linux下完成程序,存入嵌入式系统的文件系统,启动执行就行。

如果用其他操作系统大致开发情况一样,一般操作系统都有编译器提供,可以自己查找。

#2


电表这种肯定只是比较小的单片机而已。
8位单片机最多了,要不太浪费了,呵呵...

这种单片机一般用c开发,当然用汇编也可以了,如果程序很小的话。
用c开发的话,跟用c写dos程序差别不是特别大,但因为单片机的内存小,堆栈更小,
所以会有不少的限制,比如函数调用层数不能太多,等等。
还要自己实现一些中断函数,注意有些全局变量的同步问题。
另外要对硬件有些了解,比如哪个中断是哪个硬件产生的呀,哪个端口是干什么用的呀,等等。

#3


编译器?
做单片机一般要有一套开发系统,包括硬件,软件
软件一般包括编译器和调试器。
不同的单片机芯片,开发系统也不一样的

#4


楼主是做远程自动抄表系统?
这个东东现在应该很多的说,应该没什么技术难度。

#5


楼主是新手,没说你的CPU是什么大家怎么告诉你。
C51:keill
ARM:ADS/SDT
都是windows环境的,没有很大的不同,C基础好一点很快上手

#6


放到电表里的话,arm肯定是杀鸡用牛刀了,8031系列都觉得浪费了,呵呵...

#7


gz

#8


这种东西是用不着操作系统的,一块单片机就富富有余了。进行的控制只会有一些简单的逻辑。

#9


学习,怎么你们说的都不懂,看来道路远长啊

#10


大家的议论对我很有用,我现在对C语言很熟悉,但是要做的这个东西,是要控制电表的电流什么的,
我了解还不是很深,那么应该单片机就可以了,但是其他的东西,例如系统什么的还不知道呢!!

#11


所谓的系统其实就是一个可执行的程序,呵呵,我们前一个阶段作的一个单片机通信的嵌入式就只写了一个包含几个头文件的函数就可以了!其实很简单,别害怕!

#12


单片机跟硬件关联很大的,写程序一般要懂一点电路图。

单片机软件一般就几部分:
时间中断程序:做一些定时处理
串口通信中断程序:串口发送/接收
其他硬件中断程序:比如键盘接收等。一般单片机都有一个或以上的中断端口。
主程序:处理业务逻辑。

#13


那怎么把可执行程序运行到单片机上呢?有谁知道?

#14


要用工具写到rom里才行的。
有的单片机本身带rom/flash,有的不带,就要另外加rom

#15


很多单片机里带有自己的ROM,单片机在启动时自动将ROM中的内容装载到指定的地址位置并执行;使用外加的ROM时情况也是差不多的。

PS:PC机的原理也是一样,只不过首先加载的程序保存在主板的ROM之上

#16


各位兄弟的发言对我很有启发,现在有几个问题讨论以下,他现在要给我模拟信号,我用c语言怎么得到
他给的模拟信号呢,我们之间怎么通信,他要求有个报警的信号输出,我怎么作,好像是监控某一个模拟信信号的变化,我知道模拟信号变化有一顶范围,超过范围就要错误,我就报警,怎么作,好像还要信号采样,这些问题我都很陌生,请有知道的兄弟跟我联系,或者发表意见,有相关资料给我一分,qq:50479329
email:lgd_hit@sina.com

#17


太厉害了,向你们学习!!

#18


up

#19


兄弟们能推荐一下关于嵌入式系统的导论性质的书吗?是综合的讲讲方向啊,门类啊,不只讲具体的某一种。
 因为小弟想了解一下

#20


硬件都有了还怕,做不出软件?虽然你说的系统硬件基本也标准化了。

#21


不知道模拟信号怎么处理,学习中!!!

#22


模拟信号一定要转成数字信号,你的程序才能处理的。
模拟信号转数字信号要通过硬件来处理,
不知道你要处理的是什么信号?

如果你只是判断一个信号不能超过一个门限的话,硬件很简单的。
硬件输出 0/1,然后cpu可以读这个端口,可以轮询,也可以通过中断。

#23


建议看看和接口技术有关的书籍

#24


大家好,现在具体做什么我已经知道了,请兄弟帮我看看,选择什么单片机,怎么做程序,尤其采集数据该怎么做呀,最好给我点代码!
1。有两套电路,一个电路是标准的,产生的电压和传送宽度的值是标准的稳定的,他的电压范围是
   0-5.2v,但是0-0.1v范围是不规则的,所以不考虑,只考虑0.1-5.2v范围的,把0.1-5.2v分成n份
   (n越大,比较精度越高),例如:n为10,则电压每份长度是(5.2-0.1)/10=0.51,则电压范围是   (0.1-0.61);(0.61-1.11);(1.11-1.62)........,然后程序一启动就把数据电压和传送宽度采集过来,
   看电压在那个范围内,在那个范围内,就把想应的穿送宽度保存起来,一直到把所有的电压范围内的传送    宽度都填满,填写的采样数据要永久保存。

   另一套电路是,一个要监控电压和传送宽度的,这个数据要时时的采集。然后到已经采集完的的数据   去比较,把采集的电压值,去判断再那个电压范围内,然后把传送宽度去和已经存储的标准传送宽度
   去比较,如果差得很大就报警,输出高电平,否则安全就输出低电平。

#25


gz

#26


其实平时说的嵌入式有两种,一种是别人开发好平台的,比如J2ME,嵌入式Linux等等

另一种就是纯的单片机

楼主说的显然是后者

#27


Mark

#1


嵌入式系统,的开发要看你所用的操作系统,如果用linux会非常简单,就像写dos程序,用gcc就行,在一个完整的linux下完成程序,存入嵌入式系统的文件系统,启动执行就行。

如果用其他操作系统大致开发情况一样,一般操作系统都有编译器提供,可以自己查找。

#2


电表这种肯定只是比较小的单片机而已。
8位单片机最多了,要不太浪费了,呵呵...

这种单片机一般用c开发,当然用汇编也可以了,如果程序很小的话。
用c开发的话,跟用c写dos程序差别不是特别大,但因为单片机的内存小,堆栈更小,
所以会有不少的限制,比如函数调用层数不能太多,等等。
还要自己实现一些中断函数,注意有些全局变量的同步问题。
另外要对硬件有些了解,比如哪个中断是哪个硬件产生的呀,哪个端口是干什么用的呀,等等。

#3


编译器?
做单片机一般要有一套开发系统,包括硬件,软件
软件一般包括编译器和调试器。
不同的单片机芯片,开发系统也不一样的

#4


楼主是做远程自动抄表系统?
这个东东现在应该很多的说,应该没什么技术难度。

#5


楼主是新手,没说你的CPU是什么大家怎么告诉你。
C51:keill
ARM:ADS/SDT
都是windows环境的,没有很大的不同,C基础好一点很快上手

#6


放到电表里的话,arm肯定是杀鸡用牛刀了,8031系列都觉得浪费了,呵呵...

#7


gz

#8


这种东西是用不着操作系统的,一块单片机就富富有余了。进行的控制只会有一些简单的逻辑。

#9


学习,怎么你们说的都不懂,看来道路远长啊

#10


大家的议论对我很有用,我现在对C语言很熟悉,但是要做的这个东西,是要控制电表的电流什么的,
我了解还不是很深,那么应该单片机就可以了,但是其他的东西,例如系统什么的还不知道呢!!

#11


所谓的系统其实就是一个可执行的程序,呵呵,我们前一个阶段作的一个单片机通信的嵌入式就只写了一个包含几个头文件的函数就可以了!其实很简单,别害怕!

#12


单片机跟硬件关联很大的,写程序一般要懂一点电路图。

单片机软件一般就几部分:
时间中断程序:做一些定时处理
串口通信中断程序:串口发送/接收
其他硬件中断程序:比如键盘接收等。一般单片机都有一个或以上的中断端口。
主程序:处理业务逻辑。

#13


那怎么把可执行程序运行到单片机上呢?有谁知道?

#14


要用工具写到rom里才行的。
有的单片机本身带rom/flash,有的不带,就要另外加rom

#15


很多单片机里带有自己的ROM,单片机在启动时自动将ROM中的内容装载到指定的地址位置并执行;使用外加的ROM时情况也是差不多的。

PS:PC机的原理也是一样,只不过首先加载的程序保存在主板的ROM之上

#16


各位兄弟的发言对我很有启发,现在有几个问题讨论以下,他现在要给我模拟信号,我用c语言怎么得到
他给的模拟信号呢,我们之间怎么通信,他要求有个报警的信号输出,我怎么作,好像是监控某一个模拟信信号的变化,我知道模拟信号变化有一顶范围,超过范围就要错误,我就报警,怎么作,好像还要信号采样,这些问题我都很陌生,请有知道的兄弟跟我联系,或者发表意见,有相关资料给我一分,qq:50479329
email:lgd_hit@sina.com

#17


太厉害了,向你们学习!!

#18


up

#19


兄弟们能推荐一下关于嵌入式系统的导论性质的书吗?是综合的讲讲方向啊,门类啊,不只讲具体的某一种。
 因为小弟想了解一下

#20


硬件都有了还怕,做不出软件?虽然你说的系统硬件基本也标准化了。

#21


不知道模拟信号怎么处理,学习中!!!

#22


模拟信号一定要转成数字信号,你的程序才能处理的。
模拟信号转数字信号要通过硬件来处理,
不知道你要处理的是什么信号?

如果你只是判断一个信号不能超过一个门限的话,硬件很简单的。
硬件输出 0/1,然后cpu可以读这个端口,可以轮询,也可以通过中断。

#23


建议看看和接口技术有关的书籍

#24


大家好,现在具体做什么我已经知道了,请兄弟帮我看看,选择什么单片机,怎么做程序,尤其采集数据该怎么做呀,最好给我点代码!
1。有两套电路,一个电路是标准的,产生的电压和传送宽度的值是标准的稳定的,他的电压范围是
   0-5.2v,但是0-0.1v范围是不规则的,所以不考虑,只考虑0.1-5.2v范围的,把0.1-5.2v分成n份
   (n越大,比较精度越高),例如:n为10,则电压每份长度是(5.2-0.1)/10=0.51,则电压范围是   (0.1-0.61);(0.61-1.11);(1.11-1.62)........,然后程序一启动就把数据电压和传送宽度采集过来,
   看电压在那个范围内,在那个范围内,就把想应的穿送宽度保存起来,一直到把所有的电压范围内的传送    宽度都填满,填写的采样数据要永久保存。

   另一套电路是,一个要监控电压和传送宽度的,这个数据要时时的采集。然后到已经采集完的的数据   去比较,把采集的电压值,去判断再那个电压范围内,然后把传送宽度去和已经存储的标准传送宽度
   去比较,如果差得很大就报警,输出高电平,否则安全就输出低电平。

#25


gz

#26


其实平时说的嵌入式有两种,一种是别人开发好平台的,比如J2ME,嵌入式Linux等等

另一种就是纯的单片机

楼主说的显然是后者

#27


Mark