首页 > 其他分享 >RT-THREAD nano移植步骤

RT-THREAD nano移植步骤

时间:2022-09-27 10:58:40浏览次数:53  
标签:RT rt console nano THREAD list duty brush arg

1.拷贝所有文件,libcpu,bsp文件夹中只需要拷贝对应M4/M3文件

 

 

2.rtthread_startup函数芯片外设初始化,systick初始化。芯片库自带的systick中断入口函数去掉,因为rt-thread中用到这个函数

 

 

 

 

3.rtconfig.h配置,仔细阅读每一条配置含义

4.适配调试打印函数,调试命令接收函数,如下:

 1 void rt_hw_console_output(const char *str)
 2 {
 3 /* empty console output */
 4 #ifdef SYSTEM_DEBUG_EN
 5 Uart_SendBuf(USART0,(void*)str,strlen(str));
 6 #endif
 7 //SEGGER_RTT_WriteString(0,str);
 8 return;
 9 }
10 char rt_hw_console_getchar(void)
11 {
12 u8 ch=0;
13 #ifdef SYSTEM_DEBUG_EN
14 ring_getchar(&Usart0_Ring, &ch);
15 #endif
16 return ch;
17 }

 

5.上面实现了rt_hw_console_getchar()函数就可以使用发送msh命令调试一些东西,前提是rtconfig.h要打开配置,如下:

 

rt-thread自带的msh命令:help ,version,list_thread,list_sem,list_event,list_mutex,list_mailbox,list_msgqueue,list_timer,发送要以 \r\n 结尾

rt-thread加入自定义msh命令方法,示例如下:

 1 long brush(int argc,char* arg[])
 2 {
 3     if(argc>3)return 0;
 4     SYSTEM_DEBUG("arg[0]=%s,arg[1]=%s,arg[2]=%s\n",arg[0],arg[1],arg[2]);
 5     if(strstr(arg[1],"B1"))
 6     {
 7         brush_B1_duty_set(atof(arg[2]));
 8     }
 9     if(strstr(arg[1],"F1"))
10     {
11         brush_F1_duty_set(atof(arg[2]));
12     }
13     if(strstr(arg[1],"B2"))
14     {
15         brush_B2_duty_set(atof(arg[2]));
16     }
17     if(strstr(arg[1],"F2"))
18     {
19         brush_F2_duty_set(atof(arg[2]));
20     }
21     return 0;
22 }
23 MSH_CMD_EXPORT(brush, "example: brush F1/F2/B1/B2 0.5,   means: F1/F2/B1/B2 -which brush,  0.5-duty[0.0~1.0]");

 

标签:RT,rt,console,nano,THREAD,list,duty,brush,arg
From: https://www.cnblogs.com/ycpkbql/p/16733716.html

相关文章

  • Convert gif to Base64 String Using JavaScript
    letxhRequest=newXMLHttpRequest();xhRequest.onload=function(){letreader=newFileReader();reader.onloadend=function(){......
  • Get started with NuGet packages in Azure Artifacts
    GetstartedwithNuGetpackagesinAzureArtifactsDownloadNuGetpackages1.Getthefeed'ssourceURLFromwithinyourproject,selectArtifacts,andthen......
  • 证书转化 .cer .crt .jks
    cer格式——>JKS(keytool为javaJDK自带的,可以在bin目录下找到)keytool-import-aliasmycert-filed:\def.cer-keystoremykeystore.jks(导入证书到keystore)cer格式......
  • 遇到过的错误之“日期计算错误,Java8API导致Unsupported unit: Seconds【时间类错误】"
    一、问题场景:在计算相差天数时爆出的错误 报错内容:java.time.temporal.UnsupportedTemporalTypeException:Unsupportedunit:Seconds 二、原因 我这里使用了L......
  • java 使用implements接口实现sort
    一、java是单继承,implements可以有多个我们可以以这样子的格式进行集成和尊从接口:classChild extendsParent implementsprotocol1, protocol2{};Child类继承了Pa......
  • [Oracle] LeetCode 1290 Convert Binary Number in a Linked List to Integer
    Givenheadwhichisareferencenodetoasingly-linkedlist.Thevalueofeachnodeinthelinkedlistiseither0or1.Thelinkedlistholdsthebinaryrepr......
  • python Thread
    #foriinrange(10):#t1=Thread(target=函数,args=(,))#t.append(t1)##t1.start()#forhint:#h.join()#共耗时:26.087260484695435500#fo......
  • Atcoder试题乱做 Part2
    感受下来,思维难度有参差,所以还是可以做的,虽然有的题和中国赛题差距有点大,但是无伤大雅?新的\(\text{Part}\)我要自己做出来更多题!\(\text{[AGC014D]Blackan......
  • Atcoder试题乱做 Part4
    时光怎不经一生浮浮沉沉已半生一壶浊酒欲随风一步一瞥似惊鸿情字要如何追问一指兰花为谁挽留\(\text{[ARC147D]SetsScores}\)\(\color{green}{\text{[EASY]}}\)......
  • Atcoder试题乱做 Part3
    最后一年了,一年不到,为了可爱的学长们,为了自己,要拼命了啊.\(\text{[AGC048D]PockyGame}\)\(\color{green}{\text{[EASY]}}\)怎么这都做不出来,废物啊.显然石......