完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
最近由于想参加电脑鼠比赛,于是就想用现成的nrf24l01通信模块做一个远程下载程序的功能,以此方便调试电脑鼠,通过百度了解到IAP编程,堆栈向量表,启动模式巴拉巴拉的,然后顺便彻底搞懂了这玩意:
一般程序的下载有三种方法:ISP(In System Programing)、ICP(In Circuit Programing)、IAP(In applicating Programing) 这三种下载方式都是个啥? 单片机中ICP和ISP有哪些不同? 这位老哥写的看起来很专业,你们可以看看。 我自己的理解: ISP一般是通过串口(USB线)下载程序,ICP是通过SWD(几根线)下载程序,IAP是让你的MCU可以通过所有的MCU支持的通讯接口或者方式(TTL、RS232、RS485、I2C,SPI,CAN等等)下载程序,NRF24l01模块之间是通过2.4G无线通信协议通信的,而NRF24l01是使用SPI与单片机通信的,所以用IAP没毛病。 实际使用的时候就是PC将bin文件(程序编译后的二进制文件)通过串口传给MCU,MCU传给无线通讯模块,无线通讯模块传给远程的无线通讯模块,远程的无线通讯模块再传给远程的MCU,嗯,逻辑清晰。 其实根据上面那位老哥说有时候ISP与ICP其实分的不那么清楚可能就是站在MCU制造与测试端的角度,我现在是站在使用MCU的角度来理解这三个概念,所以虽然概念上感觉有些许出入,但是站在使用者的角度按照我的理解也无可厚非 切回主题,这三种启动方式都是啥呢?有啥区别?都有啥用?都是干嘛的? 第一种系统存储器:最常用的一种就是系统存储器启动,STM32芯片出厂的时候系统内部存储器自带bootloader程序,负责下载程序的时候对芯片内部的flash进行擦除与编写,ISP下载就是通过串口与bootloader将程序烧写到flash中(科普:MCU的代码是存储在flash当中的,所以一般芯片说有多少k的flash就代表能存储多少代码,据我估计六万行代码占用空间是300k,所以作为学习者的我们来说完全不必要考虑存储空间不够的问题。)一般初学者用到的就是这种。 第二种SRAM启动:SRAM叫做静态随机存取存储器(RAM、ROM、SRAM、FLASH、EEPROM等存储器都是个啥,都有啥子区别建议读者自行百度)SRAM启动一般是编写一些小程序用来扫描所有的I/O口,然后再板上测量信号,借此检测所有的焊接是否正常。 这样不必触动Flash中的程序。有一个案例是说买了个板子用ISP下不了程序,发现flash锁了,就使用SRAM启动将flash解锁。 第三种flash启动:就是不用出厂自带的bootloader,直接运行flash里的程序,将flash分为两部分,第一部分充当第二部分的bootloader,第一部分干嘛的呢?第一部分用来接收bin文件并将其写到第二部分中,第二部分才是我们MCU真正要运行的代码。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1561 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1501 浏览 1 评论
933 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
665 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1555 浏览 2 评论
1847浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
609浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
503浏览 3评论
507浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
488浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 15:46 , Processed in 0.405684 second(s), Total 44, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号