我一直在想这个问题,既然可以搬运一部分代码到RAM中运行,那就可以把所有的搬运过去,但是这样又会出现另外一个问题,就是一般的FLASH 存储空间比RAM大,所以不可能完全全部拷贝过去,所以我一直在想一种可能,是不是我们可以分时的把FLASH里的程序往RAM里调。以前TI的一个应用工程师说可以,但是在我们公司没调试出来,那时候我对DSP处于朦胧状态,现在也一直想知道这个是否能实现,不过我们一般的程序,就部分关键的地方运行在RAM里就足够了!
PC机 写好的程序,通过编译器 转换成二进制文件,然后通过烧录器写入到单片机的程序寄存器中(ROM,相当于电脑的硬盘;烧录器和单片机之间的通信,是通过特定的协议 类似于 ISP I2C UART 等,比如STC 51单片机就是通过UART 将二进制文件写入到ROM 中的)。程序运行时候 要将程序中的变量搬到 RAM中 (类似电脑内存)。单片机中的计算单元,主要是程序指针SP 根据ROM 中的指令存取 RAM 中的参数,通过CPU 进行加减乘除 等运算,其结果就是我们想要看到的。单片机是由许多晶体管组成但是有多少我没有查证过。如果细分的话 单片机内部还是有很多独立的模块,比如 定时器/计数器 I2C ISP PWM 等,越高级的单片机内部的模块越多,也就越复杂。最后一问,不知楼主是否是问单片机怎么生产出来的? 我也不清楚,希望对楼主能有一点点帮助。
有的。
可以使用C2PROG这个软件,C2PROG就是专门支持使用仿真器通过JTAG烧写DSP程序。
程序烧录,烧录时间比烧录RAM长很多,这个过程注意不要断电,不要断开仿真下载器,也不要进行复位,否则将可能导致芯片被锁死,无法再次下载程序
片外的储存器当然都是用户自己扩展的。针对于你提出的问题,我之前也有过相似的疑问,后来我觉得所谓rom,即只读存储器并不是说你根本就不能改变里面的数据,而是说在单片机运行期间里面的东西是不能改变的,因为里面存的是程序。(你想想,程序在运行期间,自己改变了,那还能当程序吗???)比如说数据存储器,它是ram,里面存的是数据,可以改变,就可以在单片机运行期间被读写!
综上,rom(程序存储器)可以在烧程序时被改变,而ram(数据存储器)在单片机运行期间被改变!
所以用户程序就是存在那4kb里面!
希望能帮到你!!!
不会的,烧写进去的程序是保存在ROM中的,早期的单片机烧写必须要用12V的电压才行,好像有的需要20V左右的,这个都是早期的
后来出现了ISP技术,就是在供电电压下可直接进行编程的,但是写入的程序都是在ROM中的,而且这个ROM和内部的RAM甚至eeprom 在物理上是隔离的,只有通过ISP程序才能写入到ROM中
放在RAM中的程序就是会在掉电时丢失eeprom和rom的掉电不会丢失
以上就是关于能不能将烧在flash里的程序,在运行时全部加载到ram里,在ram里运行全部的内容,包括:能不能将烧在flash里的程序,在运行时全部加载到ram里,在ram里运行、单片机程序烧写,使用原理、dsp有没有专门烧程序的软件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)