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

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

客户案例:安全海外中继助力知名家电企业化解海外通邮困境

1、客户背景 广东格兰仕集团有限公司(以下简称“格兰仕”),成立于1978年,是中国家电行业的领军企业之一。作为全球最大的微波炉生产基地,格兰仕拥有多项国际领先的家电制造技术,连续多年位列中国家电出口前列。格兰仕不仅注重业务的全球拓展,更重视业务流程的高效与顺畅,以确保在国际舞台上的竞争力。 2、需求痛点 随着格兰仕全球化战略的深入实施,其海外业务快速增长,电子邮件成为了关键的沟通工具。

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提