FreeRTOS学习(2)-- SDK的使用tips
前言
记录一下学习使用SDK软件的过程中遇到的问题。
- 小钥匙
原因:应该是对单个源文件进行了build选项的操作,小钥匙表示这个源文件跟工程中的其他文件的配置不同。
凡是设置过文件属性的,都会出现这个标志,重启是不行的,即是将其删除,如果再新建一个,只要与原来的重名,这个钥匙标志还会有的。
解决办法 :右键该源文件->[Resource Configuration]->[Reset to default]的方法来消除这个图标。
- 划掉小符号,
表示不参加编译,更改方式同上。
- 小箭号
箭头表示这些文件都是从别的地方链接过来的,不是实际放在工程里面的文件夹。有可能这些文件也会被其他工程链接。直接添加一个文件进工程,CCS会提示是复制到工程,还是链接到工程。
-
右键Clean project遇事不决就
clean
—如果错误都改了文件夹下还是有红叉叉、如果改了文件路径以后debug报找不到源文件,都可以clean一下。 -
计算程序运行的时间
#include <stdio.h>
#include "sleep.h"
#include "xil_io.h"
#include "xtime_l.h"
#include "xil_printf.h"
#include "xpm_counter.h"
#include "xparameters.h"
#define COUNTS_PER_SECOND (XPAR_CPU_CORTEXA9_CORE_CLOCK_FREQ_HZ / 64)
int main()
{
XTime tEnd, tCur;
u32 tUsed;
XTime_GetTime(&tCur);
usleep(1345);
XTime_GetTime(&tEnd);
tUsed = ((tEnd-tCur)*1000000)/(COUNTS_PER_SECOND);
printf("time elapsed is %d us\r\n",tUsed);
while(1); //等待
return0;
}
-
在Xilinx --> BSP setting --> 选择对应的项目文件VPZ9_ARM_bsp --> 可以改一些配置,例如堆栈大小 一般不该改 容易出错
-
Run 和 Debug 的区别: Run是离线跑。
-
如果修改了BSP配置,需要重新添加编译的文件夹路径,并且顺序也要注意。还有编译接口也要加 -lm 程序里面用到math包
-
信号量要创建,只定义句柄不行
xSemaphore1=xSemaphoreCreateBinary()
; -
SDK导出数据:
-
Notepad++ 查看导出来的.bin文件数据 可安装插件转16进制查看。
-
串口如果不打印东西,检查连接问题,删掉重加试试。
-
Xil_DCacheFlushRange((u32)DDR_ADDR,DDR_BUFFLEN); //刷新内存
-
FreeRTOS 打印任务状态、堆栈使用情况。创建一个任务。
/* USER CODE END Header_StartprintfTask */
void StartprintfTask(void * pvParameters)
{
/* USER CODE BEGIN StartprintfTask */
/* Infinite loop */
for(;;)
{
uint8_t mytaskstatebuffer[500];
printf("==================================\r\n");
printf("name state priority stack num \r\n");
vTaskList((uint8_t *)&mytaskstatebuffer);
printf("%s\r\n",mytaskstatebuffer);
vTaskDelay(100);//释放CPU占用权不要忘了延时
}
/* USER CODE END StartprintfTask */
}
- 大端小端问题: