单片机程序运行在哪里

2019-04-15 17:31发布

想必,很多人会对这个问题有困惑?
单片机运行的时候,是运行在哪里? FLASH(ROM)?还是RAM。 这就需要我们了解上一篇的内容,单片机的运行视图和加载视图@jonah_king。 我们程序的运行其实是由多种方式的,不过一般常见的有两种。
运行在ROM里的和运行在RAM里的。 一般比较小的系统,也就是说,单片机本身内部就有FLASH的。这种FLASH不同于通用的FLASH,他是支持随机地址访问的。这样的单片机,一般程序都存储在FLASH里,然后运行的时候,PC指针也可以到固定的FLASH地址里去取指令,所以呢,程序是运行在FLASH里的。 还有一类,是相对比较大一些的系统,这些系统的程序,相对来说都是比较大的,单片机也都是比较强大的。
他们的FLASH一般都是外挂的大FLASH,这样的FLASH就有个特点,不支持随机地址访问,必须一页一页的访问,这样的话,程序就不能运行在FLASH里,因为下一条指令会招不到。 怎么办呢,那就有办法啊,RAM支持随机地址访问啊,我们把FLASH里面的内容搬移到RAM里,就可以了,这样访问起来就会更快了。 通俗点来讲呢,我们说一个电脑的内存有多大,就是这个RAM,我们的系统和程序都是在那4个G里运行这的。
所以啊,一般说来,一个操作系统的内核,其实是没有太大的。 说白了,就是一些简单的单片机,他的FLASH支持随地地址访问,为了降低程序,程序就运行在了FLASH里面了。