建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块

候鹏飞

发帖: 0粉丝: 0

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2020-2-2 16:53:18 550 3 楼主 显示全部楼层
[技术干货] Windows10如何安装LiteOS开发环境-QEMU仿真

1、下载软件 

链接:https://pan.baidu.com/s/1kSgsD-z_fa15Web98bQtCQ  

提取码:0asf

2、安装软件 

请把下载下来的gnumcueclipse解压到任意目录下,即可使用,不需要安装其他任何软件。 

双击eclipse目录下eclipse.exe即可运行IDE。

3、验证环境配置 

1)新建项目LiteOS

 Eclipse->File->New->C/C++ Project->C Managed Build

1.png

点击Next,填写Project name, 选择Project type

2.png

点击Next, 如下图所示配置 要注意修改三个红框的内容

3.png

点击Next,不更改配置

4.png

点击Next,不更改配置

5.png

点击next,确认配置是不是一样,点击Finish完成配置

6.png

2) 编写代码 

 在main.cpp中修改main函数,添加打印信息代码

int main(int argc, char *argv[]) 
{ 
    // At this stage the system clock should have already been configured 
    // at high speed. 
    // Show the program parameters (passed via semihosting). 
    // Output is via the semihosting output channel. 
    trace_dump_args(argc, argv); 
    // Send a greeting to the trace device (skipped on Release). 
    trace_puts("Hello ARM World!"); 
    // Send a message to the standard output. 
    puts("Standard output message."); 
    // Send a message to the standard error. 
    fprintf(stderr, "Standard error message.\n"); 
    return 0; 
}

7.png

3)编译 

 使用快捷键Ctrl+B 可以编译全部代码,成功结果如下图:

8.png

4)配置qemu 进行模拟 点击 New Launch Configuration

9.png

选择如下图所示:

10.png

点击Next,首先确认LiteOS.elf是否正确加载

11.png

如果加载不正确,请点击Search Project,选择正确的LiteOS.elf

16.png

点击Debugger 配置Qemu 目标板 

 Board name :STM32F429I-Discovery 

 Device name:STM32F429ZI

12.png

最后点击Finish 完成配置 点击Run按钮进行仿真

13.png

结果会看到一块板子的画面一闪而过或者会出现防火墙,请点确认就行。 在终端会显示以下信息,说明仿真成功。

4、下载LiteOS代码 

 码云:https://gitee.com/LiteOS/LiteOS 

Github:https://github.com/LiteOS/LiteOS 

5、在LiteOS项目中新建文件夹命名为LiteOS 

 使用快捷命令Ctrl+N 新建文件夹,选择 C/C++->Floder

17.png

点击Next,点击LiteOS,在下面输入LiteOS

18.png

打开LiteOS源码,选择 arch目录和kernel目录 Ctrl+C复制

19.png

在工程中 点击LiteOS文件夹,Ctrl+V 就复制进来了

20.png

同样,把源码中targets目录下的STM32F103VET6_NB_GCC/OS_CONFIG文件夹复制进来

21.png

最后效果如下图:

22.png

6、配置头文件、源文件 

 点击LiteOS 工程,使用快捷键Alt+Enter, 打开Properties for LiteOS

23.png

点击C/C++ General->Paths and Symbols

24.png

添加下列目录

25.png

添加源文件,点击 Source Location

26.png

添加下列文件夹

LiteOS/arch 

LiteOS/kernel

27.png

排除不需要文件  

排除arch目录下的文件以及文件夹

28.png

排除kernel目录下的文件及文件夹

29.png

至此添加LiteOS文件完成


7、修改代码

为了使LiteOS适用STM32F429,需要修改部分代码。

1) 修改 ldscripts目录下的 sections.ld 文件

添加两行代码:

/* 根据target_config.h中给出的memory布局,定义这两个值,用于计算LiteOS可分配内存的起止地址 */ 
PROVIDE ( _Min_Heap_Size = _Heap_Begin - _ebss ) ; 
PROVIDE ( _Min_Stack_Size = __Main_Stack_Size ) ;


30.png


2) 修改LiteOS/OS_CONFIG/ target_config.h 

 修改包含的头文件 

 //#include "stm32f1xx.h"  请把这一行修改成 #include "stm32f4xx.h" 

 #include "stm32f4xx.h"

31.png

修改BOARD_SRAM_SIZE_KB 

实际开发板RAM为192KB,请设置比开发板RAM小一点 

#define BOARD_SRAM_SIZE_KB        191 

32.png

3) 修改LiteOS/kernel/include/los_config.h 

 修改位置在文件的末尾 

 //extern LITE_OS_SEC_TEXT_INIT int main(void); 

 extern LITE_OS_SEC_TEXT_INIT int main(int argc, char *argv[]);

33.png

4) 修改src/main.c 

包含头文件  #include "los_base.h"

34.png

修改main函数代码

 int main(int argc, char *argv[]) 
 { 
     // At this stage the system clock should have already been configured 
     // at high speed. 
     // Show the program parameters (passed via semihosting). 
     // Output is via the semihosting output channel. 
     trace_dump_args(argc, argv); 
     // Send a greeting to the trace device (skipped on Release). 
     trace_puts("Hello ARM World!"); 
     // Send a message to the standard output. 
     puts("Standard output message."); 
     // Send a message to the standard error. 
     fprintf(stderr, "Standard error message.\n"); 
      
     trace_printf("System clock: %u Hz\n", SystemCoreClock); 
     if (LOS_OK != LOS_KernelInit()) 
      { 
         return LOS_NOK; 
     } 
     trace_printf("Hello, LiteOS!\n"); 
     LOS_Start(); 
     return 0; 
 }

35.png

8、编译运行

如何编译运行请看上篇文章,本章不再赘述。

运行效果如下图所示:

36.png

输出 Hello LiteOS! 则代表移植成功。




举报
分享

分享文章到朋友圈

分享文章到微博

钊哥

发帖: 0粉丝: 1

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2020-2-2 16:59:56 沙发 显示全部楼层

消灭零回复

点赞 评论 引用 举报

子本兮

发帖: 269粉丝: 5

级别 : 高级会员

Rank: 4

发消息 + 关注

发表于2020-2-2 18:46:04 板凳 显示全部楼层

这个真是太棒了

点赞 评论 引用 举报

候鹏飞

发帖: 0粉丝: 0

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2020-2-2 20:06:39 地板 显示全部楼层

如果网盘失效 请联系我 我会更新的

点赞 评论 引用 举报

游客

富文本
Markdown
您需要登录后才可以回帖 登录 | 立即注册