完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
庖丁为文惠君解牛,手之所触,肩之所倚,足之所履,膝之所,砉然响,奏刀騞,莫不中音。合于桑林之舞,乃中经首之。 文惠君曰:“嘻,善哉!技盖至此乎?” 庖丁释刀对曰:“臣之所好者道也,进乎技矣。始臣之解牛之时,所见无非牛者。三年之后,未尝见全牛也。。” 文惠君曰:“善哉。。。” 本来呢今天打算上来就点灯来着,脑子里想着,可能有个P0口什么的,给个高电平或低电平,写个led=1神马的,led就点亮了,于是乎,在QBlue的BLE Example里找了个例子,打开一看就晕了,这才想起,这个不是51,这两天一直看51,思维有惯性了,须重新梳理下思路,理解一下FireBLE了。 重新审视一下FireBLE上的东东,如果看到的只是一款开发板,那是极不好的,如果已经看不到整个的板子,那便是极好的了。 FireBLE是由处理器、存储器、外设组成的,经过软硬件精心设计,便可实现许多实用的功能。 先了解下处理器,Cortex—M0属于ARMv6-M架构,包括1颗专为嵌入式应用而设计的ARM核、紧耦合的可嵌套中断微控制器NVIC、可选的唤醒中断控制器WIC,对外提供了基于AMBA结构(高级微控制器总线架构)的AHB-lite总线和基于CoreSight威廉希尔官方网站 的SWD或JTAG调试接口,Cortex-M0微控制器的硬件实现包含多个可配置选项:中断数量、WIC、睡眠模式和节能措施、存储系统大小端模式、系统滴答时钟等,半导体厂商可以根据应用需要选择合理的配置。 Cortex-M0具有以下特点: 1)能耗效率 CortexM0的运行效率很高(0.9DMIPS/MHz),能在较少的周期里完成一项任务。这意味着CortexM0可以在大部分的时间里处于休眠状态,消耗很少的能量,具有良好的能耗效率。同样较小的逻辑门数也降低了待机电流。而高效的中断控制器(NVIC)需要很小的中断开销。 2)代码密度 Cortex-M0基于Thumb-2的指令集,比用8位或者16位架构实现的代码还要少,因此用户可以选择具有较小Flash空间的芯片。可以降低系统功耗。[1] 3) 易于使用 Cortex-M0适用于C语言编程,并且被许多编译器支持。可以用C语言直接编程中断例程,而无需使用汇编语言。同时Cortex-M0还被多种开发工具支持。包括很多开源的嵌入式操作系统同样支持Cortex-M0。 顺便了解下Cortex—M0的兄弟。ARM公司在经典处理器ARM11以后的产品改用Cortex命名,并分成A、R和M三类,旨在为各种不同的市场提供服务。Cortex系列属于ARMv7架构,ARMv7架构定义了三大分工明确的系列:“A”系列面向尖端的基于虚拟内存的操作系统和用户应用;“R”系列针对实时系统;“M”系列对微控制器。A系列处理器适用于具有高计算要求、运行丰富操作系统以及提供交互媒体和图形体验的应用领域。如智能手机、上网本、机顶盒、数字电视、激光打印机、路由器等消费电子居多。 R系列处理器具有实时性强,可预测性,超级稳定性。A系列是真正的RISC,带有MMU,R系列不带有MMU,M系列完全就是MCU。三个系列的处理器只有到了适合的应用场景才能显示出强大的威力。所以没有最好,只有最合适,多了便是浪费,费钱费电,少了便是不够用甚至是废品。 俗话说,狮子领导的绵羊终会打败绵羊领导的狮子。有了很好很强大的处理器便是成功的开始。因为低功耗、轻便、智能,所以M0. 处理器说完,再说存储器,64K SRAM、128K Flash、ROM 96K,先明确一下这三个东西,SRAM、Flash、ROM。 ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。 RAM有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。另一种称为动态RAM(Dynamic RAM/DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的。 【有必要插叙下内存工作原理: 内存是用来存放当前正在使用的(即执行中)的数据和程序,我们平常所提到的计算机的内存指的是动态内存(即DRAM),动态内存中所谓的“动态”,指的是当我们将数据写入DRAM后,经过一段时间,数据会丢失,因此需要一个额外设电路进行内存刷新操作。具体的工作过程是这样的:一个DRAM的存储单元存储的是0还是1取决于电容是否有电荷,有电荷代表1,无电荷代表0。但时间一长,代表1的电容会放电,代表0的电容会吸收电荷,这就是数据丢失的原因;刷新操作定期对电容进行检查,若电量大于满电量的1/2,则认为其代表1,并把电容充满电;若电量小于1/2,则认为其代表0,并把电容放电,藉此来保持数据的连续性。】 ROM也有很多种,PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)两者区别是,PROM是一次性的,也就是软件灌入后,就无法修改了,这种是早期的产品,现在已经不可能使用了,而EPROM是通过紫外光的照射擦出原先的程序,是一种通用的存储器。另外一种EEPROM是通过电子擦出,价格很高,写入时间很长,写入很慢。【举个例子,手机软件一般放在EEPROM中,我们打电话,有些最后拨打的号码,暂时是存在SRAM中的,不是马上写入通过记录(通话记录保存在EEPROM中),因为当时有很重要工作(通话)要做,如果写入,漫长的等待是让用户忍无可忍的。】 FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。 目前Flash主要有两种NOR Flash和NADN Flash。 NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。 NAND Flash没有采取内存的随机读取威廉希尔官方网站 ,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种威廉希尔官方网站 的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还作上了一块小的NOR Flash来运行启动代码。 好了,存储器说完了,下边本来要说外设的,可是理论须得与实践相结合,理论多了会头大,应当动下手了。本来是打算先点灯的,但不知灯在何方,于是开始乱点,不经意间发现点到了,
其实先看到的是“GPIO”,因为第一反应LED灯八成在GPIO里,但是发现了Uart,还是先串口通下信,看看是不是有突破口等我等的花都谢了。 为了不破坏这些demo,于是把源码都copy了一份,打开Uart项目,编译,烧录,接通串口,于是,奇迹出现了,收到了来自FireBLE的问候,而且有灯在亮,well done!突破口就是这里了,回头看一下源码,很明显有三句值得怀疑,虽然一共也没有几句。 |
|
相关推荐
2 个讨论
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1035 浏览 0 评论
【KV260视觉入门套件试用体验】四、KV260 视觉入门套件和固件更新
1609 浏览 0 评论
【KV260视觉入门套件试用体验】Vitis AI Library体验之OCR识别
1205 浏览 0 评论
【KV260视觉入门套件试用体验】Vitis AI 通过迁移学习训练自定义模型
1706 浏览 0 评论
【KV260视觉入门套件试用体验】KV260系列之Petalinux镜像+Resnet 50探索
1370 浏览 0 评论
【AMD KV260视觉入门开发套件试用】4、简单几步体验ubuntu 20.04.3 LTS运行人员检测应用
1657浏览 1评论
2356浏览 1评论
【KV260视觉入门套件试用体验】老刘记事儿KV260初体验之Micro-SD选型提速研究(三)
895浏览 1评论
【KV260视觉入门套件试用体验】KV260部署yolov3实现车辆和行人检测
2564浏览 1评论
【KV260视觉入门套件试用体验】基于KV260的人脸识别的实现与展示
898浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 00:27 , Processed in 0.686214 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号