小小虾

    1. 提问+TI C2000 编译提示内存不足? 9/5150 微控制器 MCU 2014-11-21
      ltbytyn 发表于 2014-2-28 12:57 编译后会生出个MAP文件,里面有资源的使用情况。根据里面的资源使用情况修改CMD文件,修改前一定要看一下da ...
      我也遇到了上诉类似的问题,我把工程包发给你了   出现的错误:     Program  will  not  fit  into  available   memory.   Run  placement  with  alignment  fails  for  section  ".bss" size  0x5e59c.  Available    memory   ranges: 能帮忙改一下吗?我用的是CCS6.0.1,多谢了
    2. TM4C里的UARTPrintf();无法使用 10/5815 微控制器 MCU 2014-11-18
      之所以不能用,其实这个函数是由以下函数写的,把下面的函数所在的文件链接进去就可以用了 void UARTprintf(const char *pcString, ...) {     va_list vaArgP;     //     // Start the varargs processing.     //     va_start(vaArgP, pcString);     UARTvprintf(pcString, vaArgP);     //     // We're finished with the varargs now.     //     va_end(vaArgP); } void UARTvprintf(const char *pcString, va_list vaArgP) {     uint32_t ui32Idx, ui32Value, ui32Pos, ui32Count, ui32Base, ui32Neg;     char *pcStr, pcBuf[16], cFill;     //     // Check the arguments.     //     ASSERT(pcString != 0);     //     // Loop while there are more characters in the string.     //     while(*pcString)     {         //         // Find the first non-% character, or the end of the string.         //         for(ui32Idx = 0;             (pcString[ui32Idx] != '%') && (pcString[ui32Idx] != '\0');             ui32Idx++)         {         }         //         // Write this portion of the string.         //         UARTwrite(pcString, ui32Idx);         //         // Skip the portion of the string that was written.         //         pcString += ui32Idx;         //         // See if the next character is a %.         //         if(*pcString == '%')         {             //             // Skip the %.             //             pcString++;             //             // Set the digit count to zero, and the fill character to space             // (in other words, to the defaults).             //             ui32Count = 0;             cFill = ' ';             //             // It may be necessary to get back here to process more characters.             // Goto's aren't pretty, but effective.  I feel extremely dirty for             // using not one but two of the beasts.             // again:             //             // Determine how to handle the next character.             //             switch(*pcString++)             {                 //                 // Handle the digit characters.                 //                 case '0':                 case '1':                 case '2':                 case '3':                 case '4':                 case '5':                 case '6':                 case '7':                 case '8':                 case '9':                 {                     //                     // If this is a zero, and it is the first digit, then the                     // fill character is a zero instead of a space.                     //                     if((pcString[-1] == '0') && (ui32Count == 0))                     {                         cFill = '0';                     }                     //                     // Update the digit count.                     //                     ui32Count *= 10;                     ui32Count += pcString[-1] - '0';                     //                     // Get the next character.                     //                     goto again;                 }                 //                 // Handle the %c command.                 //                 case 'c':                 {                     //                     // Get the value from the varargs.                     //                     ui32Value = va_arg(vaArgP, uint32_t);                     //                     // Print out the character.                     //                     UARTwrite((char *)&ui32Value, 1);                     //                     // This command has been handled.                     //                     break;                 }                 //                 // Handle the %d and %i commands.                 //                 case 'd':                 case 'i':                 {                     //                     // Get the value from the varargs.                     //                     ui32Value = va_arg(vaArgP, uint32_t);                     //                     // Reset the buffer position.                     //                     ui32Pos = 0;                     //                     // If the value is negative, make it positive and indicate                     // that a minus sign is needed.                     //                     if((int32_t)ui32Value < 0)                     {                         //                         // Make the value positive.                         //                         ui32Value = -(int32_t)ui32Value;                         //                         // Indicate that the value is negative.                         //                         ui32Neg = 1;                     }                     else                     {                         //                         // Indicate that the value is positive so that a minus                         // sign isn't inserted.                         //                         ui32Neg = 0;                     }                     //                     // Set the base to 10.                     //                     ui32Base = 10;                     //                     // Convert the value to ASCII.                     //                     goto convert;                 }                 //                 // Handle the %s command.                 //                 case 's':                 {                     //                     // Get the string pointer from the varargs.                     //                     pcStr = va_arg(vaArgP, char *);                     //                     // Determine the length of the string.                     //                     for(ui32Idx = 0; pcStr[ui32Idx] != '\0'; ui32Idx++)                     {                     }                     //                     // Write the string.                     //                     UARTwrite(pcStr, ui32Idx);                     //                     // Write any required padding spaces                     //                     if(ui32Count > ui32Idx)                     {                         ui32Count -= ui32Idx;                         while(ui32Count--)                         {                             UARTwrite(" ", 1);                         }                     }                     //                     // This command has been handled.                     //                     break;                 }                 //                 // Handle the %u command.                 //                 case 'u':                 {                     //                     // Get the value from the varargs.                     //                     ui32Value = va_arg(vaArgP, uint32_t);                     //                     // Reset the buffer position.                     //                     ui32Pos = 0;                     //                     // Set the base to 10.                     //                     ui32Base = 10;                     //                     // Indicate that the value is positive so that a minus sign                     // isn't inserted.                     //                     ui32Neg = 0;                     //                     // Convert the value to ASCII.                     //                     goto convert;                 }                 //                 // Handle the %x and %X commands.  Note that they are treated                 // identically; in other words, %X will use lower case letters                 // for a-f instead of the upper case letters it should use.  We                 // also alias %p to %x.                 //                 case 'x':                 case 'X':                 case 'p':                 {                     //                     // Get the value from the varargs.                     //                     ui32Value = va_arg(vaArgP, uint32_t);                     //                     // Reset the buffer position.                     //                     ui32Pos = 0;                     //                     // Set the base to 16.                     //                     ui32Base = 16;                     //                     // Indicate that the value is positive so that a minus sign                     // isn't inserted.                     //                     ui32Neg = 0;                     //                     // Determine the number of digits in the string version of                     // the value.                     // convert:                     for(ui32Idx = 1;                         (((ui32Idx * ui32Base) 1) && (ui32Count < 16))                     {                         for(ui32Count--; ui32Count; ui32Count--)                         {                             pcBuf[ui32Pos++] = cFill;                         }                     }                     //                     // If the value is negative, then place the minus sign                     // before the number.                     //                     if(ui32Neg)                     {                         //                         // Place the minus sign in the output buffer.                         //                         pcBuf[ui32Pos++] = '-';                     }                     //                     // Convert the value into a string.                     //                     for(; ui32Idx; ui32Idx /= ui32Base)                     {                         pcBuf[ui32Pos++] =                             g_pcHex[(ui32Value / ui32Idx) % ui32Base];                     }                     //                     // Write the string.                     //                     UARTwrite(pcBuf, ui32Pos);                     //                     // This command has been handled.                     //                     break;                 }                 //                 // Handle the %% command.                 //                 case '%':                 {                     //                     // Simply write a single %.                     //                     UARTwrite(pcString - 1, 1);                     //                     // This command has been handled.                     //                     break;                 }                 //                 // Handle all other commands.                 //                 default:                 {                     //                     // Indicate an error.                     //                     UARTwrite("ERROR", 5);                     //                     // This command has been handled.                     //                     break;                 }             }         }     } } 都在uartstdio.c里面
    3. TM4C123长期串口通信,出现问题? 23/6984 微控制器 MCU 2014-11-18
      是不是你设置的那个FIFO 接收一定量后满了    同样你得考虑一样它的缓冲区问题(满了),就你描述的看这块出问题的可能性大。
    4. 邵贝贝的uCOS-II的中文教程 436/74152 实时操作系统RTOS 2014-10-27
      有没有

最近访客

< 1/1 >

统计信息

已有2人来访过

  • 芯积分:22
  • 好友:3
  • 主题:1
  • 回复:4

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言