硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3502|回复: 18
收起左侧

[CMSIS-RTOS] MDK5针对CMSIS Driver

[复制链接]

29

主题

177

回帖

264

积分

高级会员

积分
264
发表于 2021-4-21 18:55:44 | 显示全部楼层 |阅读模式
MDK5针对CMSIS Driver这份应用实例 好像是空白的  没有应用的例子,也没有help   硬汉
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
发表于 2021-4-22 09:00:54 | 显示全部楼层
有的,很多例子的。
回复

使用道具 举报

29

主题

177

回帖

264

积分

高级会员

积分
264
 楼主| 发表于 2021-4-22 09:09:25 | 显示全部楼层
有链接吗?硬汉 哪里可以找到
回复

使用道具 举报

29

主题

177

回帖

264

积分

高级会员

积分
264
 楼主| 发表于 2021-4-22 09:14:25 | 显示全部楼层
CMSIS驱动程序参考吧  
回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
发表于 2021-4-22 10:24:20 | 显示全部楼层
有帮组文档的。目录里面找找。 而且,c文件本身的函数注释,也有很多说明。
功能参考
可以从线程和中断服务例程(ISR)调用以下CMSIS-RTOS C API v2函数:


回复

使用道具 举报

7

主题

13

回帖

34

积分

新手上路

积分
34
发表于 2021-4-22 13:57:27 | 显示全部楼层
关于CMSIS Driver这块,原本是想简化驱动程序开发,尤其是I2C、SPI和USART方面。这几天给LPC54114主控芯片开发程序,采用CMSIS-OS2和CMSIS DRIVER来进行,OS2部份被多任务堆栈分配折腾一通,然后在I2C驱动24C04过程中采用了CMSIS DRIVER接口,受尽折磨,最后发现是CMSIS DRIVER无法设置I2C器件的子地址,只好用FSL_i2c_dma.C提供的驱动接口重构,方能够实现DMA方式对24C04的读写工作。加之串口还有问题,好像芯片的驱动没有办法实现串口的不定长接收,timeout不支持。还在想办法处理中。。。。
回复

使用道具 举报

29

主题

177

回帖

264

积分

高级会员

积分
264
 楼主| 发表于 2021-4-22 15:19:50 | 显示全部楼层
Zhangjc5101 发表于 2021-4-22 13:57
关于CMSIS Driver这块,原本是想简化驱动程序开发,尤其是I2C、SPI和USART方面。这几天给LPC54114主控芯片 ...

以太网中间件应用没有?  
回复

使用道具 举报

29

主题

177

回帖

264

积分

高级会员

积分
264
 楼主| 发表于 2021-4-22 15:21:18 | 显示全部楼层
Zhangjc5101 发表于 2021-4-22 13:57
关于CMSIS Driver这块,原本是想简化驱动程序开发,尤其是I2C、SPI和USART方面。这几天给LPC54114主控芯片 ...

我现在还有一个问题就是 CMSIS Driver 之以太网 一初始化   w25q32读写就不正常了  硬件SPI和模拟SPI 在执行了以太网初始化函数后  再重新初始化spi接口,操作存储器还是不正常,也读不到存储器ID了  ,但是以太网初始化后  以太网功能倒是正常的 可以正常Ping
回复

使用道具 举报

29

主题

177

回帖

264

积分

高级会员

积分
264
 楼主| 发表于 2021-5-6 11:50:31 | 显示全部楼层
感谢硬汉耐心指导,基于F1的RTX5 CMSIS DRIVER问题全部解决了,非常感谢
回复

使用道具 举报

29

主题

177

回帖

264

积分

高级会员

积分
264
 楼主| 发表于 2021-5-7 17:56:48 | 显示全部楼层
发现CMSIS Driver的USART接口  ,在中断中调用都出现问题,
比如        Driver_USART2.Send(Dat, Len);
        while (Driver_USART2.GetStatus().tx_busy);
郁闷了,请教一下硬汉哥
回复

使用道具 举报

29

主题

177

回帖

264

积分

高级会员

积分
264
 楼主| 发表于 2021-5-7 18:06:18 | 显示全部楼层
还有一个问题就是CMSIS Driver里面 似乎没有谈到NVIC中断优先级的设置高低
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
发表于 2021-5-8 07:43:04 | 显示全部楼层
wlx18682353162 发表于 2021-5-7 18:06
还有一个问题就是CMSIS Driver里面 似乎没有谈到NVIC中断优先级的设置高低

CMSIS-Driver只管使能和禁止。

具体优先级大小和优先级分组是需要用户设置的。
回复

使用道具 举报

29

主题

177

回帖

264

积分

高级会员

积分
264
 楼主| 发表于 2021-5-8 09:18:25 | 显示全部楼层
eric2013 发表于 2021-5-8 07:43
CMSIS-Driver只管使能和禁止。

具体优先级大小和优先级分组是需要用户设置的。

串口1事件收到数据后直接在回调函数里调用串口2发送 ,发现串口2一直忙状态,实际就一直卡在while (Driver_USART2.GetStatus().tx_busy);
串口2发送函数是:
        Driver_USART2.Send(Dat, Len);
        while (Driver_USART2.GetStatus().tx_busy);

这个问题还是想和硬汉交流一下
回复

使用道具 举报

41

主题

215

回帖

338

积分

高级会员

积分
338
发表于 2021-5-8 10:26:49 | 显示全部楼层
这块真是脑袋疼,寄存器,HAL,CMSIS 一共有3类,结果干一样的事情。
回复

使用道具 举报

29

主题

177

回帖

264

积分

高级会员

积分
264
 楼主| 发表于 2021-5-8 14:07:57 | 显示全部楼层
while (Driver_USART2.GetStatus().tx_busy)
就拿这句话实际也没有操作寄存器,我看的也是相当查询的意思,具体在串口中断中进行的,所以串口1的回调事件函数里面操作其它串口失败,是不是就是这个原因呢,希望请教硬汉哥
回复

使用道具 举报

29

主题

177

回帖

264

积分

高级会员

积分
264
 楼主| 发表于 2021-5-11 15:05:38 | 显示全部楼层
回复

使用道具 举报

29

主题

177

回帖

264

积分

高级会员

积分
264
 楼主| 发表于 2021-5-24 13:57:16 | 显示全部楼层
本篇提到的问题现象,如有了解的大佬,请停下你的脚步给交流一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 09:14 , Processed in 0.368608 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表