Microchip
直播中

李麒

8年用户 289经验值
私信 关注
[问答]

MPLAB和谐驱动编码方式有哪些?

我可能会因此受到批评,但是Microchip能删掉一些注释并减少HARMony中函数的实际长度吗?我提出这个的原因是,注释不应该在那里陈述显而易见的(参见下文),如果函数可以保持在100行以下,那么它们会更好。显然,这并不总是可能的,但是它使事情更容易理解。值*//*添加WRSR操作代码*/hDriver->commandAdAdDriver->;commandAdAdAdAdAdAdAdAdAdAdAdData命令[0]*//*添加WRSR值**////*添加WRSR值,使BP0,BP1 0即没有写保护*/hDriver->命令Ad地址数据[1]*添加WRSRRRRRRRRRRRRRR0值,即BP1 0即没有写保护*/hDriver-*/hDriver->>命令AdAdAdAdAdAdAdAdAdAdAdAdAdAd数据数据1]=0x0;//*添加SPI队列SPI队列*/*SPI队列*/*SPI队列*/hver->spiDriverOpenHandle,(uint8_t*)&hDriver->commandAddressData[0],2,NULL,hDriver,NULL));if(hDriver->spiBufferHandle!= DRV_SPI_BUFFER_HANDLE_INVALID){/*如果命令已经排队,*然后检查它是否已经在下一个状态中被处理*/hDriver->state=DRV_GENERIC_SPI_FLASH_WRSR_EXECU._STATUS_CHECK;}否则{/*这意味着命令没有排队,*所以在相同的状态等待它被排队*/b}reak; }是否更简单和更易读简单地说:情况DRV_GENERIC_SPI_SPI_FLASH_FLASH_FLASH_FLASH_FLASH_FLASH_SPI_FLASH_FLASC_SPI_FLASH_SPI_FLASH_FLASC_SPI_SPI_FLASH_FLASC_SPI_FLASH_WRSR_OP_OP_COCOR_CODE[0]=GENERIRIRIC_SPI_SPI_WRSR_OP_OP_COR_COR_COCOCOR_COCOCOR_COCOR_COCOR_COR_CODE[1];hDriver->>命令地址数据[1]=0spiD(uint8_t*)&hDriver->hDriver->commandAdAdAddressData[0],2,NULL,hDriver,NDriver,NULL)o非常熟悉SPI驱动程序和使用的任何SPI闪存芯片的操作,所以像“添加SPI队列中的缓冲区”这样的注释没有值并占用空间。更糟糕的是,这些评论在每种情况下都以某种形式重复。我猜我只是厌倦了自由使用注释,因为我看到注释跟不上代码,解释了显而易见的,并且占用了空间。在我看来,26行到11行是值得的。此外,我将考虑抛弃_DRV_GENERIC_SPI_FLASH_ProcessBufferTask函数,而选择从DRV_GENERIC_SPI_FLASH_Tasks调用的函数表,其中缓冲区Obj->操作是索引。为块读取、写入、擦除设置操作字段。这会把ProcessBufferTask函数分解成更小、更易管理的函数。我发现这可能是更好的方法,因为添加AAI和页写支持极大地延长了ProcessBufferTask函数。再加上支持最终的BlockEraseWrite,以便支持带有文件系统的注册表,它将变得越来越笨拙。

回帖(6)

陈晨

2020-5-1 09:07:09
让软件工程师发表评论已经是一场旷日持久的战争。获得好的评价是教育系统的失败。应该有一个注释部分,它具有等级.X++;//Add one to X不是注释,它是“显而易见”的声明。我可能已经向其他驱动程序抱怨过这一点。
举报

李天竹

2020-5-1 09:23:51
我更关心整个事情是如何完成的。使用11行长线来表达需要通过SPI发送两个字节的简单想法不是我对有用的库应该如何工作的想法。
举报

李波波

2020-5-1 09:41:32
嗨,我们知道我们的评论在某些情况下没有多大帮助。我们正在努力改进那些缓慢。谈到SST闪存驱动器,我们正在致力于一个通用的SST闪存驱动器,这将支持许多闪存。那应该更有帮助。
举报

陈晨

2020-5-1 09:48:37
我想这将取决于驱动程序的大小和复杂性,而不是特定于芯片的驱动程序。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分