V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
azev
V2EX  ›  问与答

这个 arduino 开发及 esp8266 开发是具体怎么个过程?

  •  
  •   azev · 2018-10-08 21:49:07 +08:00 · 1862 次点击
    这是一个创建于 1998 天前的主题,其中的信息可能已经有所发展或是发生改变。

    看了下,貌似是写完程序后重新构建一个全新的完整固件刷进去把原先的固件给替换掉? 并不是仅把所写的程序编译了放进去?

    11 条回复    2018-10-09 10:30:33 +08:00
    loading
        1
    loading  
       2018-10-08 21:51:17 +08:00 via Android
    这个随便 youtube 搜索个视频看看,半个小时就知道了。
    loading
        2
    loading  
       2018-10-08 21:54:06 +08:00 via Android
    arduino 有内置的底层库,你这样理解就可以了。

    c 语言 include,了解一下。
    就是编译整个项目,直接写进去。当然 bootloader 就不一定了。

    c 的普通 hello world,不也是有 include 一个 print 吗。
    azev
        3
    azev  
    OP
       2018-10-08 22:01:12 +08:00
    @loading 你说的这个'直接写进去'是写的一个完整固件吗?
    loading
        4
    loading  
       2018-10-08 22:13:25 +08:00 via Android
    去买本书看吧,你没系统学的,懒得教你。
    billlee
        5
    billlee  
       2018-10-09 00:53:48 +08:00   ❤️ 1
    单片机没有内核、进程、动态连接库这些东西。你写的程序就是独占运行的,所以依赖库都要静态连接进去。
    azev
        6
    azev  
    OP
       2018-10-09 09:00:11 +08:00
    @loading
    嗯 没系统学是真的 我是学新闻的
    开发板的程序倒是写了些了 但是对感觉对内部机制不太清楚


    @billlee 这样烧进去的是个跟原先板子上类似的完整固件?
    azev
        7
    azev  
    OP
       2018-10-09 09:00:48 +08:00
    @loading 对了 推荐本好的入门书吧
    deben
        8
    deben  
       2018-10-09 09:41:11 +08:00
    esp8266 模块里面的主驱动芯片是 单片机 /ARM,无需操作系统,直接由 C/C++ 编译成机器码来驱动。
    Arduino 提供了一堆底层的硬件驱动,比如 IO/UART/I2C 等等,只需按照指定的 C/C++ 语法就可以直接驱动硬件。
    Arduino 里面的 setup\loop 等函数,只是包装了常规 C/C++ 里面的 init 或者 main 函数而已。
    抛开 BootLoader 不谈,编译器编译出来的直接是 Hex 文件,也就是机器码,MCU 读取烧写到 Flash 里面的机器码来逐步驱动硬件来工作。

    如果只是应用,不建议系统学习电子方面的知识,只需编程就行了,遇到什么问题再去 Google 了解一下。
    728528678
        9
    728528678  
       2018-10-09 09:55:10 +08:00
    没有 BootLoader 的情况下,每次烧写就是改写内部 flash,应该可以理解为原来的都不复存在,全盘替换
    azev
        10
    azev  
    OP
       2018-10-09 10:15:39 +08:00
    @728528678
    @deben
    多谢 基本清楚了
    把 hex 文件烧进去 基本就可以说是把板子里的固件整个替换的过程了
    deben
        11
    deben  
       2018-10-09 10:30:33 +08:00
    @azev bootloader 其实就是一段引导程序,帮助烧写 flash 的程序以及引导启动。Arduino 集成了一套自己的 bootloader
    和底层库,让使用人员无需自己配置各种底层的寄存器即可使用底层硬件。

    随着工艺的进步,芯片成本的下降,Arduino 的这种做法会是趋势。可能未来越来越少直接汇编甚至 C 语言了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4063 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 05:17 · PVG 13:17 · LAX 22:17 · JFK 01:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.