标签:git 二进制文件 gae make png 数据 eof code images
开发环境搭建
建议使用qemu-system-gnuarmeclipse,该qemu分支对stm32f4有更好的支持,主要面向Eclipse开发环境。
到网页 https://github.com/gnu-mcu-eclipse/qemu/releases/tag/gae-2.8.0-20161227 下载二进制文件 gnuarmeclipse-qemu-debian64-2.8.0-201612271623-dev.tgz到~/work目录
在工作目录解压缩文件,并把路径添加到$PATH变量中
#cd ~/work
#tar xvf gnuarmeclipse-qemu-debian64-2.8.0-201612271623-dev.tgz
#chmod -R -w ./qemu
export PATH=~/work/qemu/2.8.0-201612271623-dev/bin/:$PATH
#qemu-system-gnuarmeclipse --version
显示版本信息为2.8.0,正常。
说明:qemu-system-gnuarmeclipse当前版本不支持STM32F4的浮点,相应的,FreeRTOS使用的portable目录没有使用ARM_CM4F而是使用ARM_CM3。
在Demo1目录下运行脚本文件:
#./qemu.sh
在/Projects/Demo1目录下运行qemu_gdb脚本文件,该文件中添加了--gdb tcp::1234 -S
qemu启动后等待来自gdb的调试指令,打开另外一个终端窗口,运行
#arm-none-eabi-gdb
在gdb界面内运行:
(gdb)target remote localhost:1234
(gdb)continue
1.main函数
int main(void)
{
MsgQueue=xQueueCreate(30000,sizeof(uint32_t));
xTaskCreate(
Sender_Task,
"Sender_Task",
configMINIMAL_STACK_SIZE,
(void*) NULL,
tskIDLE_PRIORITY+4UL,
NULL
);
xTaskCreate(
Receiver_Task,
"Receiver_Task",
configMINIMAL_STACK_SIZE,
(void*) NULL,
tskIDLE_PRIORITY+3UL,
NULL
);
xTaskCreate(
Monitor_Task,
"Monitor_Task",
configMINIMAL_STACK_SIZE,
(void*) NULL,
tskIDLE_PRIORITY+2UL,
NULL
);
vTaskStartScheduler();
for( ;; );
2.Sender_Task
void Sender_Task(void *pvParameters)
{
uint32_t Sendnum=1;
while(1)
{
xQueueSend(MsgQueue,(void* )&Sendnum,0);
Sendsum=Sendsum+Sendnum;
Sendnum++;
if(Sendnum==10000)
{
uint32_t Sendnum=1;
}
vTaskDelay(2);
}
}
3.Receiver_Task
void Receiver_Task(void *pvParameters)
{
uint32_t Receivernum=0;
while(1)
{
while(xQueueReceive(MsgQueue,&Receivernum,
0/portTICK_RATE_MS) == pdTRUE)
{
Receiversum=Receiversum+Receivernum;
}
vTaskDelay(1000);
}
}
4.Monitor_Task
void Monitor_Task(void)
{
while(1)
{
if(Receiversum == Sendsum)
{
Green_LED_On();
vTaskDelay(1000/ portTICK_RATE_MS);
Green_LED_Off();
}
else
{
Red_LED_On();
vTaskDelay(1000/ portTICK_RATE_MS);
Red_LED_Off();
}
vTaskDelay(10000);
}
}
标签:git 二进制文件 gae make png 数据 eof code images
原文地址:http://www.cnblogs.com/wall-f/p/7615943.html