热门标签 | HotTags
当前位置:  开发笔记 > IOS > 正文

单片机烧写的原理是什麼阿

只是指导有一个叫bootloader的程序希望那位大大帮忙解释下子谢谢
只是指导有一个叫bootloader的程序
希望那位大大 帮忙解释下子谢谢

17 个解决方案

#1


烧写在某种程度上讲就是对FLASH /ROM / EEPROM / ... 的编程, 这个具体实现方式各厂家可能有差异, 与flash的编程算法有关.
Bootloader 主要是为了引导系统, 应该讲和烧写没有直接的关系.    

#2


楼上解释的不错,

单片机的烧写就是对单片机内部的存储器进行数据写入,有些单片机的烧写电压与正常工作电压不一样,具体参见该芯片厂商的资料。

bootloader是指系统引导程序,一般来说在嵌入式系统里都有一个bootloader的东西,目的是为了在启动操作系统之前进行一些初始化的工作,
为引导系统作准备,同时也可以在引导的时候对操作系统内核进行升级。

#3


bootloader实际上就是一个调试,下载操作系统的程序,如果你的操作系统烧进去后再也不用变动,那就不需要bootloader
至于单片机烧写的原理,你可以去看看JTAG,ISP等一些文档

#4


如果要了解烧写的原理,可以找一本数字电子方面的书,看一下EPROM/EEPROM,需要看图,说不清楚。

#5


bootloader是一段固定在ROM中的程序代码,一般在芯片出厂前就固化好了,其主要作用就是在启动操作系统之前进行初始化并引导系统。 
单片机的烧写就是对芯片内部的存储器进行数据写入,一般分为3个步骤:第一,对存储器进行擦出操作;第二,对存储器进行写操作;第三,进行校验操作。不同的芯片具有不同的操作算法。

#6


同意楼上,只是想补充一下BOOTLOADER还有一个功能就是把我们下载在存储器中的程序搬移到RAM中运行。初始化各个部件最后移交操作系统。

#7


呵呵
解释的都不错 

bootloader 主要完成初始化工作地,硬件初始化,内存分配...., 引导系统


书上的定义都差不多, 但你可以做的非常强大地


#8


学习了

#9


单片机貌似没有BOOTLOADER,只有嵌入式才有啊,单片机没有操作系统啊

#10


引用 3 楼 sherlock_lai 的回复:
bootloader实际上就是一个调试,下载操作系统的程序,如果你的操作系统烧进去后再也不用变动,那就不需要bootloader
至于单片机烧写的原理,你可以去看看JTAG,ISP等一些文档

...................

bootloader,顾名思义,就是最开始的引导程序,就好比PC上的bios,在操作系统之前运行,对硬件做最基本的配置,具体来说包括CPU舒适化,内存控制器初始化,磁盘(或者flash)初始化等,然后将操作系统加载到内存,最后将控制权交給操作系统。每次系统启动都离不开的。 

什么“操作系统的烧写程序”,会误导人家的。

烧写是flash芯片自己提供的接口,通过驱动这个接口可以将访问flash的内容,包括读、写、擦除、上锁等,跟bootloader没关系。当然bootloader一般是需要驱动flash的,这样可以从那里加载操作系统,甚至提供烧写功能。

#11


引用 9 楼 KKK2007 的回复:
单片机貌似没有BOOTLOADER,只有嵌入式才有啊,单片机没有操作系统啊


他有个启动代码的,只是因为单片机的flash大小内部的,不能改变的。所以就是keil吧把bootloader代码写好了。因为不用修改,所以不用用户写了。不信去看看startup.s这个代码----------他就是单片机的BIOS。

至于烧写原理,无非就是对flash操作的问题。这个楼主看一下单片机的数据手册即可详细了解了

#12


引用 9 楼 KKK2007 的回复:
单片机貌似没有BOOTLOADER,只有嵌入式才有啊,单片机没有操作系统啊


他有个启动代码的,只是因为单片机的flash大小内部的,不能改变的。所以就是keil吧把bootloader代码写好了。因为不用修改,所以不用用户写了。不信去看看startup.s这个代码----------他就是单片机的BIOS。

至于烧写原理,无非就是对flash操作的问题。这个楼主看一下单片机的数据手册即可详细了解了

#13


引用 9 楼 KKK2007 的回复:
单片机貌似没有BOOTLOADER,只有嵌入式才有啊,单片机没有操作系统啊


他有个启动代码的,只是因为单片机的flash大小内部的,不能改变的。所以就是keil吧把bootloader代码写好了。因为不用修改,所以不用用户写了。不信去看看startup.s这个代码----------他就是单片机的BIOS。

至于烧写原理,无非就是对flash操作的问题。这个楼主看一下单片机的数据手册即可详细了解了

#14


引用 9 楼 KKK2007 的回复:
单片机貌似没有BOOTLOADER,只有嵌入式才有啊,单片机没有操作系统啊


他有个启动代码的,只是因为单片机的flash大小内部的,不能改变的。所以就是keil吧把bootloader代码写好了。因为不用修改,所以不用用户写了。不信去看看startup.s这个代码----------他就是单片机的BIOS。

至于烧写原理,无非就是对flash操作的问题。这个楼主看一下单片机的数据手册即可详细了解了

#15


学习了

#16


发现大家都是高手,以前只是知其然,现在知其所以然了

#17


学习了

推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 提升Python编程效率的十点建议
    本文介绍了提升Python编程效率的十点建议,包括不使用分号、选择合适的代码编辑器、遵循Python代码规范等。这些建议可以帮助开发者节省时间,提高编程效率。同时,还提供了相关参考链接供读者深入学习。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 本文介绍了游戏开发中的人工智能技术,包括定性行为和非定性行为的分类。定性行为是指特定且可预测的行为,而非定性行为则具有一定程度的不确定性。其中,追逐算法是定性行为的具体实例。 ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • 本文讨论了在iOS平台中的Metal框架中,对于if语句中的判断条件的限制和处理方式。作者提到了在Metal shader中,判断条件不能写得太长太复杂,否则可能导致程序停留或没有响应。作者还分享了自己的经验,建议在CPU端进行处理,以避免出现问题。 ... [详细]
  • 本文介绍了在Docker容器技术中限制容器对CPU的使用的方法,包括使用-c参数设置容器的内存限额,以及通过设置工作线程数量来充分利用CPU资源。同时,还介绍了容器权重分配的情况,以及如何通过top命令查看容器在CPU资源紧张情况下的使用情况。 ... [详细]
author-avatar
小丘
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有