第二次作业U201410699赵宏伟

1、在github上,Fork例程项目(https://github.com/cbhust/STM32F429_Discovery_FreeRTOS_9.git) 到自己的个人账号。

1240414-20170928195146059-1925204845.png

2、clone项目到本地电脑的Ubuntu虚拟机中(虚拟机环境在第一次作业中已搭建)。

开发环境搭建同第一次:

1240414-20170928195541059-1321838019.png

3、按照/Projects/Demo1/README.md中的提示编译Demo1例程并通过Qemu运行例程。

(1)创建work文件到Home目录并下载文件到work文件:

mkdir work

cd work

git clone https://github.com/cbhust/STM32F429_Discovery_FreeRTOS_9.git

(2)到网页 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

1240414-20170928200340075-197730885.png

(3)测试qemu能否正常运行,如正常则会显示版本信息为2.8.0。

qemu-system-gnuarmeclipse --version

1240414-20170928200508575-1318240443.png

(4)在Demo1目录下运行make,生成hello_rtos.elf文件

cd ~/work/STM32F429_Discovery_FreeRTOS_9/Projects/Demo1/Hello_RTOS/

make

1240414-20170928200745497-1478732636.png

(5)在Demo1目录下运行脚本文件,在弹出的GUI中看到程序执行的效果。

./qemu.sh

1240414-20170928200919965-551584809.png

1240414-20170928200924872-78380878.png

(6)安装gdb-arm-none-eabi工具

sudo apt-get install gdb-arm-none-eabi

(7)在Demo1目录下运行qemu_gdb脚本文件,该文件中添加了--gdb tcp::1234 -S

./qemu_gdb.sh

    qemu启动后等待来自gdb的调试指令,打开另外一个终端窗口,运行

arm-none-eabi-gdb

    在gdb界面内运行:

(gdb)target remote localhost:1234
(gdb)continue

    可以看到qemu开始执行程序,GUI界面上可以看到程序执行效果:

1240414-20170928201414262-1840423652.png

4、在Demo1的框架基础上完成自己的本次编程作业
具体要求:
创建三个任务:Sender_Task,Receiver_Task, Monitor_Task
Sender_Task的任务执行周期为2ms,Receiver_Task的任务执行周期为1000ms, Monitor_Task的任务执行周期为10000ms。
Sender_Task在每个执行周期向Receiver_Task发送一个32位无符号整数,第一次发送1,然后依次发送2,3,4......,发送完10000后再从1开始发送。同时对发送的数据进行计算 累加计算并保存当前累加结果。
Receiver_Task对接收到的数据进行和Sender_Task同样的累加计算并保存当前累加结果。
Monitor_Task在每个执行周期检查Sender_Task发送的每个数据是否都被Receiver_Task正确的接收和处理,请自行设计一种检查机制并实现。
可利用STM32F429I Discovery开发板的相关硬件(LED/LCD/串口)来输出相关状态信息。
使用FreeRTOS的任务间通信和同步API完成上述功能。

1240414-20170928235637919-346773786.png

1240414-20170928235643512-1162364887.png
1240414-20170928235714715-1384372102.png
1240414-20170928235720825-1439232553.png
1240414-20170928235742934-275147885.png

也不知道为啥,结果好像不对,我已经崩溃了。。。。。
1240414-20170928235824762-804166630.png

5、Github链接:https://github.com/2106470959/homework2

我在Github上直接在仓库上Upload上传main.c文件,如图可见:
1240414-20170929170524544-959074890.png

1240414-20170929170543731-1214026075.png

1240414-20170929170557669-682926547.png

1240414-20170929170603872-1759772851.png

转载于:https://www.cnblogs.com/ZhaoHW/p/7609193.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值