SElinux安全操作系统---RTEMS编译开发环境搭建

2023-10-28 15:30

本文主要是介绍SElinux安全操作系统---RTEMS编译开发环境搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

开发板:天嵌TQ2440标板

系统:win10+VMware+Ubuntu16.0.4

代码工具:sourceinsight

如果使用win10系统,而不是直接的linux系统开发,应该搭建win平台的嵌入式开发环境和VMware的linux开发编译环境。

首先搭建win10嵌入式开发环境:

        1:安装USB转串口工具----网上有很多简易实用的工具,我推荐SecureCRT串口工具,用于和开发板串口信息显示控制。

        2:安装USB下载驱动-----TQ2440可以支持USB下载,首先下载USB驱动,TQ2440开发板光盘资料中有驱动直接安装。

            针对于win10USB驱动安装不了,解决办法:

            下载LibUsbDotNet_setup.2.2.7驱动并安装(64位和32系统通用)

             出现的问题:1 驱动安装不上,选择本地驱动,文件夹手动安装。

                                 2 驱动安装没有签名,电脑重启进入驱动免签名模式,然后手动安装驱动

                                104300_MWaR_1466132.png

              设备管理器中,如上图所示才算驱动安装成功!

       3:安装下载工具,如果是linux系统直接开发,可以使用dnw2下载程序到开发板中,但是win中,需要安装下载工具,TQ2440开发板自带的dnw下载工具,可以直接下载。

            针对于win10,dnw下载工具无法使用的问题:

            可使用SuperVivi-Transfer-Tool-Complete工具代替dnw下载,如下图所示:

               104637_wuBS_1466132.png

搭建VMware 的Ubuntu开发编译环境:

        1:安装RTEMS系统编译链工具

            安装RTEMS RAM编译链工具是一件非常蛋疼的东西,各种库版本的依赖非常强,还有个版本的限制问题,以及各种莫名的安装BUG,多尝试几遍这样复杂的工具链安装,对Linux操作水平的锻炼是非常强,闲话不扯,进入正题。

         在rtems的官方网站上面有关于系统编译工具链搭建的指导文档,地址(点击),在Quick Start部分有安装步骤:

                <1>新建工具链目录:~/development/rtems.

                <2>加入系统变量:$ export PATH=$HOME/development/rtems/4.11/bin:$PATH

                 <3>在线获取官方编译包:

                        $ cd

                        $ mkdir -p development/rtems/src

                        $ cd development/rtems/src

                        $ git clone git://git.rtems.org/rtems-source-builder.git

                        $ cd rtems-source-builder

                <4>检查环境是否OK:

                       $ source-builder/sb-check

                        如果出现:RTEMS Source Builder environment is ok代表环境安装成功,一般新系统都是缺少包的:

                      095444_5zOa_1466132.png

所以需要安装几个依赖包:

                    1:apt-get install bison

                    2:apt-get install cvs

                    3:apt-get install flex

                    4:apt-get install git

                    5:apt-get install texinfo

            <5>编译生成工具链,选择4.11/rtems-arm 的支持ARM开发平台的工具链

                    $ cd rtems 

                    $ ../source-builder/sb-set-builder --list-bsets

                  $ ../source-builder/sb-set-builder --log=l-sparc.txt \

                        --prefix=$HOME/development/rtems/4.11  4.11/rtems-arm

                 注:获取源码编译,和最后一步生成工具链的过程可能会有各种问题,需要耐心的一个一个解决,一般都是gcc工具链的问题,和一些必须的依赖包没有安装上。

             <6>修改RTEMS源码的板级支持包,使其能够支持arm开发平台

                    ···········修改mini2440/start.S,在74-80行添加:

* zero the bss */
ldr     r1, =bsp_section_bss_end
ldr     r0, =bsp_section_bss_begin
_bss_init:
mov     r2, #0
cmp     r0, r1
strlot  r2, [r0], #4
blo     _bss_init        /* loop while r0 < r1 */

                ·········mini2440/include/bsp.h中:

 #ifndef LIBBSP_ARM_SMDK2410_BSP_H
#define LIBBSP_ARM_SMDK2410_BSP_H改为
#ifndef LIBBSP_ARM_SMDK2440_BSP_H
#define LIBBSP_ARM_SMDK2440_BSP_H

                注释下面这一段:

#if 0
/** @brief FCLK=133Mhz */
#define M_MDIV 81
#define M_PDIV 2
#define M_SDIV 1
/** @brief HCLK=FCLK/2, PCLK=FCLK/2 */
#define M_CLKDIVN 2
/** @brief enable refresh */
#define REFEN	0x1
/** @brief CBR(CAS before RAS)/auto refresh */
#define TREFMD	0x0
/** @brief 2 clk */
#define Trp	0x0
/** @brief 7 clk */
#define Trc	0x3
/** @brief 3 clk */
#define Tchr	0x2
#endif

添加:

#define M_MDIV 		0x7f    /* FCLK=405Mhz, origin: 81, to: 0x7f*/</SPAN>  
#define M_PDIV 		2       
#define M_SDIV 		1   
#define M_CLKDIVN 	5 		/* HCLK=FCLK/4, PCLK=FCLK/2 */   #define REFEN   0x1 	/* enable refresh */   
#define TREFMD  0x0 	/* CBR(CAS before RAS)/auto refresh */   
#define Trp 	0x0 	/* 2 clk */   
#define Trc 	0x3 	/* 7 clk */   
#define Tchr    0x2 	/* 3 clk */

                ···········在/rtems-master/c/src/lib/libcpu/arm/s3c24xx/clock/support.c中:

//return((BSP_OSC_FREQ * m) / (p << s));
改为
return((BSP_OSC_FREQ * m * 2) / (p << s));
/*uint32_t get_HCLK(void)
{if (rCLKDIVN & 0x2)return get_FCLK()/2;elsereturn get_FCLK();
}*/
改为:
/* return HCLK frequency */
uint32_t get_HCLK(void)
{if ((rCLKDIVN & 0x06) == 0x04)return get_FCLK() / 4;else if ((rCLKDIVN & 0x06) == 0x00)return get_FCLK();else if ((rCLKDIVN & 0x06) == 0x02)return get_FCLK() / 2;elsereturn get_FCLK() / 3;  
}

                  ·············在/arm/mini2440/startup/bspstart.c中:

   //rMPLLCON = ((M_MDIV<<12)+(M_PDIV<<4)+M_SDIV);
改为:rMPLLCON = ((127<<12)+(2<<4)+1);//REFCNT   = 2048+1-(15.6*get_HCLK()/1000000);
改为:REFCNT   = 2048+1-(7.8125 * get_HCLK()/1000000);

                ············/arm/mini2440/console/uart.c中:

//while(!(rUTRSTAT0 & 0x2)) {
改为while(!(rUTRSTAT0 & 0x4)) {

添加下面两行:

rCLKCON|=0x100;
rGPHCON |= 0xa0; 
rGPHUP |= 0x0c;
      //rUFCON0 = 0x07;
改为rUFCON0 = 0x0;//rUCON0 = 0x245;
改为rUCON0 = 0x05;

                ············/arm/mini2440/startup/linkcmds中:

 MEMORY {  SDRAM_MMU :     ORIGIN = 0x30000000, LENGTH = 16kSDRAM : ORIGIN = 0x30004000, LENGTH = 64M_16k  } 
改为:
MEMORY {SDRAM : ORIGIN = 0x30000000, LENGTH = 64M - 16KSDRAM_MMU : ORIGIN = 0x33ffc000, LENGTH = 16k
}

  2:编译RTEMS系统

        安装编译链工具后,就可以去获取rtems源码包,但是要和自己的工具链匹配,我选择安装的版本是4.11,所以相对应的源码包是rtems-4.11版本。

        注:需要将安装好的编译工具链加入到系统的变量环境中,才可以生效使用。

        <1>编译系统的命令步骤:

        在rtems目录下:   

        $./bootstrap -c

        $./bootstrap -p

        $./bootstrap 

       $ cd ../

       $ mkdir b-sis

       $ ../rtems-4.11/configure  --target=arm-rtems4.11 --enable-posix --disable-cxx --disable-itron --enable-networking --enable-tests=samples --enable-rtemsbsp=mini2440

        <2>生成arm可执行文件

         在rtems系统的sample的目录中,有很多系统自带的测试用例,用户自己的程序,也基本上可以模仿rtems里面的历程来写各种用户程序

          在b-sis新建的安装目录中找到自己写的用户程序:

           $arm-rtems4.11-objcopy  -O binary 自己的程序.exe 自由命名.bin

          即可生成.bin文件,,通过安装在win上面的下载工具,通过板子的uboot 下载到在arm上面执行

 

转载于:https://my.oschina.net/u/1466132/blog/813456

这篇关于SElinux安全操作系统---RTEMS编译开发环境搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/294169

相关文章

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配

Python38个游戏开发库整理汇总

《Python38个游戏开发库整理汇总》文章介绍了多种Python游戏开发库,涵盖2D/3D游戏开发、多人游戏框架及视觉小说引擎,适合不同需求的开发者入门,强调跨平台支持与易用性,并鼓励读者交流反馈以... 目录PyGameCocos2dPySoyPyOgrepygletPanda3DBlenderFife

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁