打印
[技术问题解答]

MQX开发中,遇到的几个问题,请指点迷津

[复制链接]
2171|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
MCF54418|  楼主 | 2014-4-18 14:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题一:
    我在使用RegisterTimer(100, watchActionList, this);时,创建定时器组件如下:
    _timer_create_component(TIMER_DEFAULT_TASK_PRIORITY, Timer_Stack_Size);
        其中,TIMER_DEFAULT_TASK_PRIORITY为1,;

    另外,我在BSP中定义定时器PIT0~3的优先级,如下:
    #define BSP_PIT0_INT_LEVEL                  (5)

        请问,我使用的定时器中断优先级,是1,还是5?


问题二:
    请问,MQX中,互斥器的优先级默认为多少?能配置吗?


案例分析:
    CAN收发时,我用互斥器包裹,目的是不让其他任务切断CAN的收发。
    但是,结果发现如下情况:
    300ms时:发送CAN命令;(设置的等待时间为20ms)
    301ms时:定时器中断执行;
    320ms时:定时器中断结束;
    321ms时:接收CAN命令超时;

    感觉是,尽管互斥器包裹了CAN收发,但是定时器中断将CAN收发打断了,
    从而导致CAN接收超时。所以,有了“问题一”和“问题二”!


    【各位大侠,请指导下……不胜感激!!!】

Best wishes

相关帖子

沙发
FSL_TICS_ZJJ| | 2014-4-18 15:06 | 只看该作者
楼主你好,我把你的问题转给我们的MQX工程师,他有空会帮你答一下,请耐心等待。

使用特权

评论回复
板凳
MCF54418|  楼主 | 2014-4-18 15:18 | 只看该作者
FSL_TICS_ZJJ 发表于 2014-4-18 15:06
楼主你好,我把你的问题转给我们的MQX工程师,他有空会帮你答一下,请耐心等待。 ...

谢谢,I‘m waiting for you:)

使用特权

评论回复
地板
FSL_TICS_DANIEL| | 2014-4-18 15:34 | 只看该作者
楼主请参考MQX  USER GUIDE , 3.9.3.4 节。 里面讲了硬件中断和任务优先级的关系

使用特权

评论回复
5
MCF54418|  楼主 | 2014-4-18 15:53 | 只看该作者
FSL_TICS_DANIEL 发表于 2014-4-18 15:34
楼主请参考MQX  USER GUIDE , 3.9.3.4 节。 里面讲了硬件中断和任务优先级的关系

您好:
    在我的bsp中定义硬件优先级,如下:
    #define BSP_DEFAULT_MQX_HARDWARE_INTERRUPT_LEVEL_MAX    (6L)
        而,我PIT0~3的优先级为5,如下:
    #define BSP_PIT0_INT_LEVEL                  (5)

        我能不能这样认为,由于硬件中断为6(即互斥器为6),而我任务中的定时器中断
    优先级为5,故我在CAN收发的时候,互斥器优先级低于任务中的定时器中断优先级,
    所以,CAN收发被打断???

Best wishes

使用特权

评论回复
6
MCF54418|  楼主 | 2014-4-21 09:52 | 只看该作者
Freescale:

    我想知道,为什么没人回复?请给予帮助,谢谢。

Best wishes

使用特权

评论回复
7
FSL_TICS_ZJJ| | 2014-4-21 10:37 | 只看该作者
MCF54418 发表于 2014-4-21 09:52
Freescale:

    我想知道,为什么没人回复?请给予帮助,谢谢。

4楼是我们的MQX工程师,我已经把你的更新告诉他了。
他有空会过来回答你,请耐心等待。

使用特权

评论回复
8
FSL_TICS_DANIEL| | 2014-4-21 11:50 | 只看该作者
MCF54418 发表于 2014-4-21 09:52
Freescale:

    我想知道,为什么没人回复?请给予帮助,谢谢。

您可以将情况递交一个服务请求 (service request)到ww.freescale.com/webapp/sps/site/homepage.jsp?nodeId=05 , 我们会优先处理service request.
我们一般只定了任务的优先级, 即你在创建mqx任务时指定的优先级。 没有互斥器优先级的说法。
你可以对应MQX user guide 图3-4 (MQX4.1),  举个例子, 如果你的任务优先级时4, MQX_HARDARE_INTERRUPT_LEVEL_MAX为6, 则对应的值为1, 即您的任务只能被优先级为0, 和 1的中断打断。

使用特权

评论回复
9
MCF54418|  楼主 | 2014-4-22 16:52 | 只看该作者
FSL_TICS_DANIEL 发表于 2014-4-21 11:50
您可以将情况递交一个服务请求 (service request)到ww.freescale.com/webapp/sps/site/homepage.jsp?no ...

您好:
    首先,谢谢您这么有耐心答复我。

    1、我在创建任务时,任务优先级的值设置的是8或9,没有小于等于7的。

    2、我看了您说的那张关于优先级的表格,感觉有点绕,没绕明白:

当MQX_HARDARE_INTERRUPT_LEVEL_MAX  =  6,

调用_timer_create_component(1, 10000);时,则创建的定时器中断优先级是1(还是4?),

而#define FLEXCAN_MESSBUF_INT_LEVEL       (3)
    #define FLEXCAN_MESSBUF_INT_SUBLEVEL    (4)
说明CAN中断优先级是3(还是2?)
    CAN中断子优先级是4(还是1?)

Best wishes
常学俊

使用特权

评论回复
10
FSL_TICS_ZJJ| | 2014-4-22 16:54 | 只看该作者
MCF54418 发表于 2014-4-22 16:52
您好:
    首先,谢谢您这么有耐心答复我。

MQX的工程师暂时不在,明天我把你的问题再转交给他,请耐心等待下。

使用特权

评论回复
11
MCF54418|  楼主 | 2014-4-22 17:04 | 只看该作者
FSL_TICS_ZJJ 发表于 2014-4-22 16:54
MQX的工程师暂时不在,明天我把你的问题再转交给他,请耐心等待下。

非常感:)谢

使用特权

评论回复
12
FSL_TICS_ZJJ| | 2014-4-22 17:11 | 只看该作者
MCF54418 发表于 2014-4-22 17:04
非常感谢

不客气,如果你问题很着急,你还可以到官网建立一个技术服务请求,要用英文的写。
因为目前中国区只有一个MQX支持工程师,其余都在国外。
建立技术服务请求的链接:https://www.freescale.com/zh-Hans/webapp/servicerequest.create_SR.framework
标题一定要写个MQX关键字哦。

使用特权

评论回复
13
MCF54418|  楼主 | 2014-4-22 17:21 | 只看该作者
FSL_TICS_ZJJ 发表于 2014-4-22 17:11
不客气,如果你问题很着急,你还可以到官网建立一个技术服务请求,要用英文的写。
因为目前中国区只有一 ...

我前几天写了一个技术服务请求。请问,怎么查看结果。谢谢。

使用特权

评论回复
14
FSL_TICS_ZJJ| | 2014-4-22 17:23 | 只看该作者
MCF54418 发表于 2014-4-22 17:21
我前几天写了一个技术服务请求。请问,怎么查看结果。谢谢。

你把SR号给我看看呢,我帮你查下是否已经有人接了。

使用特权

评论回复
15
dongxu_LCC| | 2014-12-21 11:23 | 只看该作者
FSL_TICS_ZJJ 发表于 2014-4-22 17:23
你把SR号给我看看呢,我帮你查下是否已经有人接了。

你好  能把MQX的技术支持工程师的core id 告诉我吗,想向他咨询点问题 ,我飞卡的!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

29

帖子

0

粉丝