??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲成a人v欧美综合天堂,亚洲视频在线一区观看,在线国产日本http://www.aygfsteel.com/chubingyu/q着慉|的步子,走在成长路上..... Dead zh-cnTue, 17 Jun 2025 05:52:31 GMTTue, 17 Jun 2025 05:52:31 GMT60STM32中assert_param的?/title><link>http://www.aygfsteel.com/chubingyu/archive/2012/05/31/379680.html</link><dc:creator>鹰空独舞</dc:creator><author>鹰空独舞</author><pubDate>Thu, 31 May 2012 08:53:00 GMT</pubDate><guid>http://www.aygfsteel.com/chubingyu/archive/2012/05/31/379680.html</guid><wfw:comment>http://www.aygfsteel.com/chubingyu/comments/379680.html</wfw:comment><comments>http://www.aygfsteel.com/chubingyu/archive/2012/05/31/379680.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/chubingyu/comments/commentRss/379680.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/chubingyu/services/trackbacks/379680.html</trackback:ping><description><![CDATA[     摘要: 在STM32的固件库和提供的例程中,到处都可以见到assert_param()的用。如果打开M一个例E中的stm32f10x_conf.h文gQ就可以看到实际上assert_param是一个宏定义Q?nbsp; <a href='http://www.aygfsteel.com/chubingyu/archive/2012/05/31/379680.html'>阅读全文</a><img src ="http://www.aygfsteel.com/chubingyu/aggbug/379680.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/chubingyu/" target="_blank">鹰空独舞</a> 2012-05-31 16:53 <a href="http://www.aygfsteel.com/chubingyu/archive/2012/05/31/379680.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OSTaskCreate()http://www.aygfsteel.com/chubingyu/archive/2012/05/31/379676.html鹰空独舞鹰空独舞Thu, 31 May 2012 08:23:00 GMThttp://www.aygfsteel.com/chubingyu/archive/2012/05/31/379676.htmlhttp://www.aygfsteel.com/chubingyu/comments/379676.htmlhttp://www.aygfsteel.com/chubingyu/archive/2012/05/31/379676.html#Feedback0http://www.aygfsteel.com/chubingyu/comments/commentRss/379676.htmlhttp://www.aygfsteel.com/chubingyu/services/trackbacks/379676.html

OSTaskCreate()
函数原型QINT8U OSTaskCreate(void(*task)(void *pd),void *pdata,OS_STK *ptos,INT8U prio)
调用者:d或者是初始化代码?br style="line-height: 22px" />作用Q徏立一个新dQQ务的建立可以在多个Q务环境启动之前,也可以在正在q行的Q务中建立Q中断处理程序中不能建立dQ一个Q务必Mؓ无限循环l构Q且不能有返回点。无论用L序中是否产生中断Q在初始化Q务堆栈时Q堆栈的l构必须与处理器中断后寄存器入栈的顺序结构相同?/span>

该函数返回一?位的整Ş敎ͼ调用该函数需要四个参敎ͼ
a W一个参敎ͼtask是一个指向Q务代码的指针Q也是用户代码的首地址Q^怋用中我们把自己创建的d的名字作个参数即可?br style="line-height: 22px" />b W二个参敎ͼpdata指向一个数据结构,该结构用来在建立d时向d传递参数?br style="line-height: 22px" />c W三个参敎ͼptos是指向Q务堆栈栈的指针Q一般把创徏的Q务的堆栈数组首地址赋给它?br style="line-height: 22px" />d堆栈用来保存局部变量,函数参数Q返回地址以及d被中断时处理器寄存器的内容,d堆栈的大决定于d的需要以及预计的中断嵌套层数。计堆栈的大小需要知道Q务的局部变量所占的I间Q可能生嵌套调用的函数Q及中断嵌套所需的空_如果初始化常量OS_STK_GROWTH设ؓ1Q堆栈被设ؓ从内存高地址向低地址增长Q此时ptos应该指向d堆栈I间的最高地址Q反之,如果OS_STK_GROWTH设ؓ0Q堆栈将从内存的低地址向高地址增长?br style="line-height: 22px" />d W四个参敎ͼprio是Q务的优先U。每个Q务必L一个唯一的优先作ؓ标识Q数字越,优先U越高?/p>

q回|
OSTaskCreate()的返回gؓ下述之一Q?br style="line-height: 22px" /># OS_NO_ERR: 函数调用成功?br style="line-height: 22px" /># OS_PRIO_EXIST:h该优先的Q务已l存在?br style="line-height: 22px" /># OS_PRIO_INVALID: 参数指定的优先大于OS_LOWEST_PRIO
# OS_NO_MORE_TCB: pȝ中没有OS_TCB可以分配lQ务了?/p>

注意Q?br style="line-height: 22px" />1 M堆栈必须声明为OS_STKcd?br style="line-height: 22px" />2 在Q务中必须调用uCOS提供的下q过E之一Qg时等待,d挂vQ等待事件发生({待信号量,消息邮箱Q消息队列)Q以便其他Q务能得到cpu?br style="line-height: 22px" />3 E序中不能用优先0Q?Q?Q?Q以及OS_LOWEST_PRIO-3QOS_LOWEST_PRIO-2QOS_LOWEST_PRIO-1Q?/p>

OS_LOWEST_PRIO,q些优先U系l保留,其余?6个优先提供l应用程序?/p>

范例Q?br style="line-height: 22px" />本例中,传递给dTask1()的参数pdata不用,所以指针pdata被设为NULLLQ注意到E序中设定堆栈向低地址增长Q传递的栈顶指针为高地址&Task1[1023],如果在你的程序中讑֮堆栈向高地址增长Q则传递的栈顶指针应该?amp;Task1Stk[0]?br style="line-height: 22px" />OS_STK Task1Stk[1024];
void main(void)
{
NT8U err;
   ...
OSInit();//初始化uCOS-II
....
OSTaskCreate(Task1,(void *)0,&Task1Stk[1023],25);
...
OSStart();//启动多Q务环?br style="line-height: 22px" />}

void Task1(void *pdata)
{
pdata=pdata;
for(;;)
{
......   //d代码
}

}



鹰空独舞 2012-05-31 16:23 发表评论
]]>
嵌入式小?/title><link>http://www.aygfsteel.com/chubingyu/archive/2012/05/29/379455.html</link><dc:creator>鹰空独舞</dc:creator><author>鹰空独舞</author><pubDate>Tue, 29 May 2012 08:46:00 GMT</pubDate><guid>http://www.aygfsteel.com/chubingyu/archive/2012/05/29/379455.html</guid><wfw:comment>http://www.aygfsteel.com/chubingyu/comments/379455.html</wfw:comment><comments>http://www.aygfsteel.com/chubingyu/archive/2012/05/29/379455.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/chubingyu/comments/commentRss/379455.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/chubingyu/services/trackbacks/379455.html</trackback:ping><description><![CDATA[<div>NAND FLASH  与NOR FLASH 的区?br /> <p>与Nand Flash对应的是另一UFlashQNor FlashQ其对应的特ҎQ?br />“NorFlash的特Ҏ芯片内执?XIP,eXecute In Place)Q这样应用程序可以直接在flash闪存内运行,不必再把代码dpȝRAM中。如uboot中的roD可以直接在NorFlash上运行,只需要把rw和ziD|贝到RAM中运行即可?”</p> <p>而相应地QNand Flash比较ҎQ?br />“NandFlash器g使用复杂的I/O口来串行地存取数据,8个引脚用来传送控制、地址和数据信息。由于时序较为复杂,所以一般CPU最好集成NAND控制器。另外由于NandFlash没有挂接在地址ȝ上,所以如果想用NandFlash作ؓpȝ的启动盘Q就需要CPU具备Ҏ的功能,如s3c2410在被选择为NandFlash启动方式时会在上甉|自动dNandFlash?k数据到地址0的SRAM中。如果CPU不具备这U特D功能,用户不能直接q行NandFlash上的代码Q那可以采取其他方式Q比如好多用NandFlash的开发板除了使用NandFlash以外Q还用上了一块小的NorFlash来运行启动代码?#8221;</p> <p>至于Qؓ什么Nand Flash不能q行XIP的原因,主要是由于物理上的硬仉Ӟ<br />在读取Flash时候,Ҏ出现“位翻转(bit convertQ?#8221;Q?br />“在Flash的位{Q一个bit位发生翻转)现象上,NAND的出现几率要比NorFlash大得多。这个问题在Flash存储关键文g时是致命的,所以在使用NandFlash时徏议同时用EDC/ECC{校验算法?”</p> <p>但是Q如果能保证不出错,也还是可以进行XIPQ可以在其上执行代码的:<br />“所谓XIP,是CODE是在FLASH上直接运? NANDFLASH只是不适合做XIP,但ƈ不是不能做XIP.<br />要一DCODE能够正确的运?要保证它的CODE是连l的,正确?<br />׃一些电气特性的原因,NOR FLASH能够做到q一?不存在坏道或坏块,所以能够做XIP.<br />而对于NAND FLASH, 它只保证它的BLOCK 0是好?其他的块q不保证,虽然出错的几率比较低,但还是有出错的可?所以CODE可能无法q箋正确地执?<br />但只要你有额外的保障措施,比如说在执行CODE之前d一ơECC校验,来确保CODE是连l正的.那你也可以做XIP. 事实上我正在这么做,而且也证明是成功? ”</p></div><img src ="http://www.aygfsteel.com/chubingyu/aggbug/379455.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/chubingyu/" target="_blank">鹰空独舞</a> 2012-05-29 16:46 <a href="http://www.aygfsteel.com/chubingyu/archive/2012/05/29/379455.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java学习者开始启?/title><link>http://www.aygfsteel.com/chubingyu/archive/2011/01/16/343040.html</link><dc:creator>鹰空独舞</dc:creator><author>鹰空独舞</author><pubDate>Sat, 15 Jan 2011 16:18:00 GMT</pubDate><guid>http://www.aygfsteel.com/chubingyu/archive/2011/01/16/343040.html</guid><wfw:comment>http://www.aygfsteel.com/chubingyu/comments/343040.html</wfw:comment><comments>http://www.aygfsteel.com/chubingyu/archive/2011/01/16/343040.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/chubingyu/comments/commentRss/343040.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/chubingyu/services/trackbacks/343040.html</trackback:ping><description><![CDATA[再做评设计旉到的问题Q及相应解决办法<br /> 1.d背景音乐Q设计的界面太单调,以前只是知道一些基本语法,现想提升一下自己)<br /> 主要代码如下Q?br /> import java.io.*; <br /> import java.awt.*; <br /> import java.net.MalformedURLException; public static void main(String args[]) { <br /> try { <br /> URL cb; <br /> File f = new File("C:\\Documents and Settings\\Administrator\\桌面\\刀出鞘.wav"); <span style="color: red">//引号里面的是音乐文g所在的l对路径<br /> </span>cb = f.toURL(); <br /> AudioClip aau; <br /> aau = Applet.newAudioClip(cb); <br /> //aau.play();<br /> aau.loop();<br /> //循环播放 aau.play() 单曲 aau.stop()停止播放 <br /> }<br />  catch (MalformedURLException e){ <br />     e.printStackTrace(); <br />    } <br /> }<br /> <br /> 2.d背景囄<br /> 主要代码Q?br /> import java.swing.*; <br /> final ImageIcon img=new ImageIcon("jiemian.jpg");  <br />     JPanel jpnl =new JPanel(){   <br />        public void paintComponent(Graphics g){   <br />          g.drawImage(img.getImage(),0,0,580,500,null,null);   <br />          super.paintComponent(g);} }; <br />        jpnl.setBounds(0,0,587,540);<br />        jpnl.setOpaque(false);   <br /> 3.键盘输入识别<br /> 识别'Enter'?主要代码Q?br />  public void keyPressed(KeyEvent ke){<br />   if(ke.getKeyChar() == ke.<span style="color: red">VK_ENTER</span>){  //以前不知道,原来有一个系l中有专门的帔R对应键盘Ҏ按钮<br />    System.out.println ("ok................") ;<br />   }<br />  }<br /> 4.按钮数组及其响应 Q刚开始时把它惛_杂了Q?br /> 主要代码Q?br /> JButton btn[]=new JButton[5];<br /> .......<br /> void  define(){<br />     btn[0]=new JButton("btn1");<br />     btn[1]=new JButton("btn2"); <br />     btn[2]=new JButton("btn3"); <br />     btn[3]=new JButton("<html>按钮?lt;br>?按钮?lt;/html>");   //<html>......<br>可以实现按钮上字W串换行昄的功?br />     btn[4]=new JButton("btn6");<br />     for(int i=0;i<5;i++)<br />     {<br />       btn[i].addActionListener(new ActListen());<br />     }<br /> }<br />  class ActListen implements ActionListener<br />  {<br />    public void actionPerformed(ActionEvent e)<br />  {<br />   JButton butn=(JButton)e.getSource();<br />   if(butn==btn[1]){            <br />     }        <br />   else if(butn==btn[2]){       <br />   }<br />   else if(butn==btn[0]){   <br />    }<br />    else if(butn==btn[3]){   <br />    }<br />   else if(butn==btn[4]){<br />    }<br /> }<br /> ......... <img src ="http://www.aygfsteel.com/chubingyu/aggbug/343040.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/chubingyu/" target="_blank">鹰空独舞</a> 2011-01-16 00:18 <a href="http://www.aygfsteel.com/chubingyu/archive/2011/01/16/343040.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ͻ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ľ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">崨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ϊ</a>| <a href="http://" target="_blank">̩</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ͽ</a>| <a href="http://" target="_blank">е</a>| <a href="http://" target="_blank">ͤ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ֹ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">گ</a>| <a href="http://" target="_blank">̫ԭ</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ײ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">¡</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɿ</a>| <a href="http://" target="_blank">ʯ</a>| <a href="http://" target="_blank">ԭ</a>| <a href="http://" target="_blank">ʯɽ</a>| <a href="http://" target="_blank">ӳ</a>| <a href="http://" target="_blank">ƽ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>