关于NVIC使用以及M0和M3的异同

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于NVIC使用以及M0和M3的异同相关的知识,希望对你有一定的参考价值。

定期存款)
M3=M2+其他货币性短期流动资产(国库券:

M1 是狭义货币供应量;金融债券。

M0=流通中现金
M1=流通中现金+可交易用存款(支票存款;

现阶段我国货币供应量划分为以下三个层次、M1,也反映了潜在的购买力, M2 是广义货币供应量货币供应量按流动性划分为 M0,特别是掌握其构成的变化、M2,对整个国民经济状况的分析,商品的供应量应和M1保持合适的比例关系,研究M2,不然经济会过热或萧条.
M2反映了现实的购买力;转帐信用卡存款)
M2=M1+非交易用存款(储蓄存款;大额可转让定期存单等)
M0流通中的现金量作为最窄意义上的货币
M1反映了社会的直接购买能力;商业票据,预测都有特别重要的意义.紧缩的方法就是提高存款准备金率、M3四个层次; M1 与 M2 之差是准货币
参考技术A ARM7,arm9,arm11,cortex
M0/M3分别代表ARM处理器的一个系列。
ARM7架构为ARMv4
ARM9架构为ARMv5
ARM11架构为ARMv7
CORTEX又分三个系列,分别是:
cortex-A,cortex-R,cortex-M架构是ARMv7
cortex
M0/M3属于cortex-M系列,是ARM最新架构,目前STM32用的比较多
建议直接上手cortex
M0/M3

debug和release下PostThreadMessage的异同

     MFC中创建线程分为工作线程和UI线程。其中UI线程可以通过继承CWinThread进行创建。

创建函数如下:

   CWinThread *m_pRecogThread;//语音识别线程

    m_pRecogThread =(CSpeechRecogThread *) AfxBeginThread(RUNTIME_CLASS(CSpeechRecogThread));

这样就创建了UI线程,就可以通过m_pRecogThread->PostThreadMessage(UM_VERIFY_AVAILABILITY,NULL,NULL),给当前线程发送消息。

   然而,PostThreadMessage缺常常会出问题。在debug下,上述代码能够正确执行,而debug下不能正确执行。

  我们执行下面代码捕捉错误,

DWORD dw;
dw = GetLastError(); 
CString str;
str.Format("%u",dw);

正常情况下,返回的应该是0,而错误的时候返回的是1444.

百度后发现,1444 PostThreadMessage 这种错误是因为线程没有创建消息队列,可以通过延时解决。以下是代码:

while(!m_pRecogThread->PostThreadMessage(UM_VERIFY_AVAILABILITY,NULL,NULL))
{
Sleep(1000);
}

但是上述代码在release模式下没有任何变化。

百度了好久,找到一个链接MFC‘s CWinThread::PostThreadMessage handler not called .PostThreadMessage没有被调用。

可以通过在该线程InitInstance函数中,调用PeekMessage解决。具体的步骤就是在InitInstance函数中加入如下代码。

AfxOleInit();
CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
 MSG msg;
 PeekMessage(&msg, NULL, WM_USER, WM_USER, PM_NOREMOVE);

 

到处,问题被完整解决:

参考文献:

1 http://stackoverflow.com/questions/12764300/mfcs-cwinthreadpostthreadmessage-handler-not-called

2 http://www.cppblog.com/sandy/archive/2005/12/31/2320.html

 

以上是关于关于NVIC使用以及M0和M3的异同的主要内容,如果未能解决你的问题,请参考以下文章

关于commonjs,AMD,CMD之间的异同

ExceptionError运行时异常与一般异常有何异同

LTE与5G异同

JAVA---抽象类和接口基础知识详解(及两者异同点)

cookie 和session的原理以及异同

Debian和CentOS异同