找回密码
 注册
关于网站域名变更的通知
查看: 47|回复: 0
打印 上一主题 下一主题

单片机与ARM区别有多大

[复制链接]
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
     楼主| 发表于 2024-10-30 17:35 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    ) g0 a; p0 l: p2 \) K4 K" X
    1 软件方面
    / R, ]6 {& \7 \4 P- d5 b3 |3 e8 e4 l
    这应该是最大的区别了。引入了操作系统。为什么引入操作系统?有什么好处?
    3 S4 K6 B5 m2 ?' j" P( G0 |
    1、方便。主要体现在后期的开发,即在操作系统上直接开发应用程序。不像单片机一样一切都要重新写。前期的操作系统移植工作,还是要专业人士来做。
    0 a7 _. H% |- l) t9 x" e
    2、安全。这是LINUX的一个特点。LINUX的内核与用户空间的内存管理分开,不会因为用户的单个程序错误而引起系统死掉。这在单片机的软件开发中没见到过。
    5 C) N4 C+ J' s8 n/ U3 ?' p
    3、高效。引入进程的管理调度系统,使系统运行更加高效。在传统的单片机开发中大多是基于中断的前后台技术,对多任务的管理有局限性。

    0 p/ V/ y4 Z9 p
    2 硬件方面

    3 ?; X9 |1 h0 s, C* }/ d
    现在的8位单片机技术硬件发展的也非常得快,也出现了许多功能非常强大的单片机。但是与32ARM相比还是有些差距吧。
    " U0 w7 O% F: ^  C$ Y
    1、arm芯片大多把SDRAM、LCD等控制器集成到片子当中。在8位机,大多要进行外扩。
    5 h+ B2 q% x5 O7 n0 L
    2、单片机是个微控制器,arm显然已经是个微处理器了。

    ( H2 n. K$ e3 [, F0 {
    3、引入嵌入式操作系统之后,可以实现许多单片机系统不能完成的功能。比如:嵌入式web服务器,java虚拟机等。也就是说,有很多免费的资源可以利用,上述两种服务就是例子。如果在单片机上开发这些功能可以想象其中的难度。
    5 R" h4 m' ^7 ~& c, Y8 m/ c% R
    3 初学者如何选择ARM开发硬件?

    ( g& Y( t1 I7 m& b
    1、 如果你有做硬件和单片机的经验,建议自己做个最小系统板:假如你从没有做过ARM的开发,建议你一开始不要贪大求全,把所有的应用都做好,因为ARM的启动方式和DSP或单片机有所不同,往往会碰到各种问题,所以建议先布一个仅有Flash、SRAM或SDRAM、CPU、JTAG、和复位信号的小系统板,留出扩展接口。使最小系统能够正常运行,你的任务就完成了一半,好在arm的外围接口基本都是标准接口,假如你已有这些硬件的布线经验,这对你来讲是一件很轻易的事情。
    2 H- h, a/ h; a5 u8 I" ^" {
    2、动手写启动代码,根据硬件地址先写一个能够启动的小代码,包括以下部分:
    . M' z, {4 T2 t. n
    初始化端口,屏蔽中断,把程序拷贝到SRAM中

    % N3 S6 C8 a: n* o& f/ o
    完成代码的重映射

    / t7 D; v- n6 E+ L
    配置中断句柄,连接到C语言入口。
    ( k' ^$ h, k1 y) G& N  p
    也许你看到给你的一些示例程序当中,bootloader会有很多东西,但是不要被这些复杂的程序所困扰,因为你不是做开发板的,你的任务就是做段小程序,让你的应用程序能够运行下去。
      i5 i- O% P! ]! q
    3、假如你是作硬件,每个厂家基本上都有针对该芯片的DEMO板原理图。先将原理图消化。这样你以后做设计时,对资源的分配心中有数。器件的DATSHEET一定要好好消化。
    . C! s; t5 H& Z( J5 @! b& `
    4、 仔细研究你所用的芯片的资料,尽管arm在内核上兼容,但每家芯片都有自己的特色,编写程序时必须考虑这些问题。尤其是女孩子,在这儿千万别有依靠心理,总想拿别人的示例程序修改,却越改越乱。
    / z& }9 i3 c* U3 x8 K
    5、多看一些操作系统程序,在arm的应用开放源代码的程序很多,要想提高自己,就要多看别人的程序,Linux、uCos-II等等这些都是很好的原码。

    ; n: x4 K6 t. |/ W. k
    6、假如做软件最好对操作系统的机理要有所了解。当然这对软件工程师来说是小菜一碟。但假如是硬件出身的就有点费劲。

    ( r$ S  y6 V( T. y: r" Q5 R6 z$ l$ x5 J
    7、最好买一块现成的ARM板,学嵌入式系统的话,选择ARM9、Cortex-A8等板子,这样学习效率会大大提高,也会比自己做板子省成本。
    ) k: X; x( H) g7 f8 I5 j

    " Z7 o- o1 l8 p/ x' W% m
    ' m7 X  T) |8 A% a4 ?  `7 y5 [6 z
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-8-24 17:38 , Processed in 0.125000 second(s), 27 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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