精华内容
下载资源
问答
  • 现在手中有一部分已经做好的组态软件,然后希望将其运行平台移植到wince系统的嵌入式系统中去,就是做一个类似做一个触摸屏的上位机软件的东西,然后可以运行显示在触摸屏上。。。。希望给我个稍微点详细的思路啊~~~...
  • bios部分需要专用的芯片吗?可不可以直接用eeprom将自己编写的bios代码代替啊? 主要是好奇,现在大家都在搞ARM嵌入式,硬件方面x86这块好像很淡。 顺便说下,我是业余的,所以不怕搞8086耽误时间。
  • 操作系统的硬件控制功能,通常是通过一些小的函数集合体的形式来提供的。这些函数及调用函数的行为统称为系统调用(system call),也就是应用对操作系统(system)的功能进行调用(call)的意思。在前面的程序中用...
  • 操作系统的硬件控制功能,通常是通过一些小的函数集合体的形式来提供的。这些函数及调用函数的行为统称为系统调用(system call),也就是应用对操作系统(system)的功能进行调用(call)的意思。在前面的程序中用...

    操作系统的硬件控制功能,通常是通过一些小的函数集合体的形式来提供的。这些函数及调用函数的行为统称为系统调用(system call),也就是应用对操作系统(system)的功能进行调用(call)的意思。在前面的程序中用到了time()及printf()等函数,这些函数内部也都使用了系统调用。这里之所以用“内部”这个词,是因为在Windows操作系统中,提供返回当前日期和时刻,以及在显示器中显示字符串等功能的系统调用的函数名,并不是time()和printf()。系统调用是在time()和printf()函数的内部执行的。大家可能会认为这个方法有些绕,不过这是有原因的。

    C语言等高级编程语言并不依存于特定的操作系统。这是因为人们希望不管是Windows还是Linux,都能使用几乎相同的源代码。因此,高级编程语言的机制就是,使用独自的函数名,然后再在编译时将其转换成相应操作系统的系统调用(也有可能是多个系统调用的组合)。也就是说,用高级编程语言编写的应用在编译后,就转换成了利用系统调用的本地代码(图9-6)。

    图9-6 高级编程语言的函数调用在编译后变成了系统调用

    在高级编程语言中,也存在可以直接调用系统调用的编程语言。不过,利用这种方式做成的应用,移植性并不友好(也俗称为有恶意行为的应用)。例如,直接调用Windows系统调用的应用,在Linux上显然是无法运行的。

    Ps:①移植性指的是同样的程序在不同操作系统下运行时需要花费的时间等,费时越少说明移植性越好。

    展开全文
  • Linux内核及文件系统移植 嵌入式系统包含硬件子系统与软件子系统,其中软件子...本课程主要对第三部分嵌入式文件系统的构建与移植进行介绍,讲解如何选择、配置、移植与制作一个可用的文件系统及其镜像,以及怎样配...

    Linux内核及文件系统移植

    嵌入式系统包含硬件子系统与软件子系统,其中软件子系统大致可分为:bootloader、Linux内核、文件系统与应用开发,这四个组成部分中前三者构建成嵌入式应用功能的基础运行环境,是进行嵌入式产品项目开发前期就需要敲定的配置环境,非常重要与关键。本课程主要对第三部分嵌入式文件系统的构建与移植进行介绍,讲解如何选择、配置、移植与制作一个可用的文件系统及其镜像,以及怎样配合Linux内核的配置调整来应用生成的文件系统,进而掌握构建完整的嵌入式软件子系统应用开发环境。

    开发移植环境:虚拟机Ubuntu 12.04 + FriendlyARM Smart210SDK + Windows 7 Ultimate

    Lesson 1. Linux内核启动参数介绍与设置

    引导:
    软件子系统各组成部分之间的层次与关联,怎样相互识别、配置与加载?

    一、系统启动流程
    bootloader(uboot) ———— Linux Kernel(uImage) ———— Rootfs(Init) ———— Applications

    二、启动环境配置
    uboot环境变量: printenv setenv saveenv tftpboot nand read/write …
    baudrate 115200
    bootdelay
    bootcmd boot bootd运行bootcmd变量指定的命令进行启动
    ipaddr, serverip, ethaddr,gatewayip
    bootargs

    内核启动参数:bootargs '<name>=<value> ...'
    bootargs=root=/dev/nfs nfsroot=192.168.10.7:/home/hong/nfsroot ip=192.168.10.11 init=/linuxrc console=ttySAC0,115200
    
    	root, rootfstype, nfsroot
    		root=/dev/nfs nfsroot=nfsserver:path
    		root=/dev/mtdblock2
    		rootfstype=jffs2/yaffs2/squashfs/ubifs/...
    	mtdparts: mtdparts=mtd-id:<size1>@<offset1>(<name1>),<size2>@<offset2>(<name2>) 
    		mtdparts=s5pv210-nand:1M(boot),5M(kernel),80M(rootfs),426M(usrfs)	
    		要想这个参数起作用,内核中的mtd驱动必须要支持,即内核配置时需要选上
    		Device Drivers  ---> Memory Technology Device (MTD) support  ---> Command line partition table parsing 
    	ip: nfs必须进行设置
    		 ip=ip addr
    		 ip=ip addr:server ip addr:gateway:netmask::which netcard:off
    	init, console
    	mem 限制linux内核的使用内存 mem=128M
    

    三、启动参数设置
    setenv bootargs ‘root=/dev/nfs nfsroot=192.168.10.7:/home/hong/nfsroot ip=192.168.10.11 init=/linuxrc console=ttySAC0,115200’
    setenv bootcmd ‘tftpboot 20008000 tiny_uImage;bootm 20008000’

    总结:
    1. 收集信息:flash类型与分区(nand/nor/spi.etc), 内存大小, 根文件系统类型,网络参数等(参考SDK开发手册)
    2. 配置参数:setenv bootargs ‘…’;saveenv;
    3. 测试参数:确保内核镜像可以成功加载,必不可少的步骤

    展开全文
  • 在基于 RPM 的系统上 (例如, CentOS, Fedora 或 RHEL): $ sudo yum remove mysql* mysql-server mysql-devel mysql-libs $ sudo rm -rf /var/lib/mysql 在基于 Debian 的系统上(例如, Debian, Ubuntu 或 Mint): $ ...

    自从甲骨文收购 MySQL 后,由于甲骨文对 MySQL 的开发和维护更多倾向于闭门的立场,很多 MySQL 的开发者和用户放弃了 MySQL。在社区驱动下,促使更多人移到 MySQL 的另一个叫 MariaDB 的分支。在原有 MySQL 开发人员的带领下,MariaDB 的开发遵循开源的理念,并确保它的二进制格式与 MySQL 兼容。Linux 发行版如 Red Hat 家族(Fedora,CentOS,RHEL),Ubuntu 和 Mint,openSUSE 和 Debian 已经开始使用,并支持 MariaDB 作为 MySQL 的直接替换品。

    a594cbd12a4a7d7ffe827a7722429c42.png

    如果你想要将 MySQL 中的数据库迁移到 MariaDB 中,这篇文章就是你所期待的。幸运的是,由于他们的二进制兼容性,MySQL-to-MariaDB 迁移过程是非常简单的。如果你按照下面的步骤,将 MySQL 迁移到 MariaDB 会是无痛的。

    准备 MySQL 数据库和表

    出于演示的目的,我们在做迁移之前在数据库中创建一个测试的 MySQL 数据库和表。如果你在 MySQL 中已经有了要迁移到 MariaDB 的数据库,跳过此步骤。否则,按以下步骤操作。

    在终端输入 root 密码登录到 MySQL 。

    $ mysql -u root -p

    创建一个数据库和表。

    mysql> create database test01;

    mysql> use test01;

    mysql> create table pet(name varchar(30), owner varchar(30), species varchar(20), sex char(1));

    在表中添加一些数据。

    mysql> insert into pet values('brandon','Jack','puddle','m'),('dixie','Danny','chihuahua','f');

    退出 MySQL 数据库.

    备份 MySQL 数据库

    下一步是备份现有的 MySQL 数据库。使用下面的 mysqldump 命令导出现有的数据库到文件中。运行此命令之前,请确保你的 MySQL 服务器上启用了二进制日志。如果你不知道如何启用二进制日志,请参阅结尾的教程说明。

    $ mysqldump --all-databases --user=root --password --master-data > backupdb.sql

    6b8876494ac6fe742813b281a8642540.png

    现在,在卸载 MySQL 之前先在系统上备份 my.cnf 文件。此步是可选的。

    $ sudo cp /etc/mysql/my.cnf /opt/my.cnf.bak

    卸载 MySQL

    首先,停止 MySQL 服务。

    $ sudo service mysql stop

    或者:

    $ sudo systemctl stop mysql

    或:

    $ sudo /etc/init.d/mysql stop

    然后继续下一步,使用以下命令移除 MySQL 和配置文件。

    在基于 RPM 的系统上 (例如, CentOS, Fedora 或 RHEL):

    $ sudo yum remove mysql* mysql-server mysql-devel mysql-libs

    $ sudo rm -rf /var/lib/mysql

    在基于 Debian 的系统上(例如, Debian, Ubuntu 或 Mint):

    $ sudo apt-get remove mysql-server mysql-client mysql-common

    $ sudo apt-get autoremove

    $ sudo apt-get autoclean

    $ sudo deluser mysql

    $ sudo rm -rf /var/lib/mysql

    安装 MariaDB

    在 CentOS/RHEL 7和Ubuntu(14.04或更高版本)上,最新的 MariaDB 已经包含在其官方源。在 Fedora 上,自19 版本后 MariaDB 已经替代了 MySQL。如果你使用的是旧版本或 LTS 类型如 Ubuntu 13.10 或更早的,你仍然可以通过添加其官方仓库来安装 MariaDB。

    MariaDB 网站 提供了一个在线工具帮助你依据你的 Linux 发行版中来添加 MariaDB 的官方仓库。此工具为 openSUSE, Arch Linux, Mageia, Fedora, CentOS, RedHat, Mint, Ubuntu, 和 Debian 提供了 MariaDB 的官方仓库.

    7a5e43ecfac158e0e368448c98675d1f.png

    下面例子中,我们使用 Ubuntu 14.04 发行版和 CentOS 7 配置 MariaDB 库。

    Ubuntu 14.04

    $ sudo apt-get install software-properties-common

    $ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db

    $ sudo add-apt-repository 'deb http://mirror.mephi.ru/mariadb/repo/5.5/ubuntu trusty main'

    $ sudo apt-get update

    $ sudo apt-get install mariadb-server

    CentOS 7

    以下为 MariaDB 创建一个自定义的 yum 仓库文件。

    $ sudo vi /etc/yum.repos.d/MariaDB.repo

    [mariadb]

    name = MariaDB

    baseurl = http://yum.mariadb.org/5.5/centos7-amd64

    gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

    gpgcheck=1

    $ sudo yum install MariaDB-server MariaDB-client

    安装了所有必要的软件包后,你可能会被要求为 MariaDB 的 root 用户创建一个新密码。设置 root 的密码后,别忘了恢复备份的 my.cnf 文件。

    $ sudo cp /opt/my.cnf /etc/mysql/

    现在启动 MariaDB 服务。

    $ sudo service mariadb start

    或:

    $ sudo systemctl start mariadb

    或:

    $ sudo /etc/init.d/mariadb start

    导入 MySQL 的数据库

    最后,我们将以前导出的数据库导入到 MariaDB 服务器中。

    $ mysql -u root -p < backupdb.sql

    输入你 MariaDB 的 root 密码,数据库导入过程将开始。导入过程完成后,将返回到命令提示符下。

    要检查导入过程是否完全成功,请登录到 MariaDB 服务器,并查看一些样本来检查。

    $ mysql -u root -p

    MariaDB [(none)]> show databases;

    MariaDB [(none)]> use test01;

    MariaDB [test01]> select * from pet;

    81e05ff1e54ef383f254481f5693a745.png

    结论

    如你在本教程中看到的,MySQL-to-MariaDB 的迁移并不难。你应该知道,MariaDB 相比 MySQL 有很多新的功能。至于配置方面,在我的测试情况下,我只是将我旧的 MySQL 配置文件(my.cnf)作为 MariaDB 的配置文件,导入过程完全没有出现任何问题。对于配置文件,我建议你在迁移之前请仔细阅读 MariaDB 配置选项的文件,特别是如果你正在使用 MySQL 的特定配置。

    如果你正在运行有海量的表、包括群集或主从复制的数据库的复杂配置,看一看 Mozilla IT 和 Operations 团队的 更详细的指南 ,或者 官方的 MariaDB 文档。

    故障排除

    1、 在运行 mysqldump 命令备份数据库时出现以下错误。

    $ mysqldump --all-databases --user=root --password --master-data > backupdb.sql

    mysqldump: Error: Binlogging on server not active

    通过使用 "--master-data",你可以在导出的输出中包含二进制日志信息,这对于数据库的复制和恢复是有用的。但是,二进制日志未在 MySQL 服务器启用。要解决这个错误,修改 my.cnf 文件,并在 [mysqld] 部分添加下面的选项。(LCTT 译注:事实上,如果你并没有启用二进制日志,那取消"--master-data"即可。)

    log-bin=mysql-bin

    保存 my.cnf 文件,并重新启动 MySQL 服务:

    $ sudo service mysql restart

    或者:

    $ sudo systemctl restart mysql

    或:

    $ sudo /etc/init.d/mysql restart

    本文由 LCTT 原创翻译,Linux中国 荣誉推出 linisi.svg

    展开全文
  • 介绍怎样移植android系统到不同嵌入式平台,以android模拟器内核goldfish,高通MSM平台,德州仪器OMAP平台来例子介绍如何移植android系统
  • 这是一个学习UCOS操作系统的PDF文档,包含实时多任务、任务调度、事件标志、消息队列、内存管理等知识点,还介绍了怎样在ARM上移植UCOS操作系统
  • 嵌入式平台系统移植经验总结

    千次阅读 2014-02-22 20:46:32
    嵌入式平台系统移植经验总结 起因 (Preface)  最近在把OpenHome从DM365移植到PL1129平台,这个两个平台差异巨大,整个源码环境都架构虽然一致,但是所用都Libaray不同,最关键的是web server不同,这个是...

    嵌入式平台系统移植经验总结


    起因 (Preface)

       最近在把OpenHome从DM365移植到PL1129平台,这个两个平台差异巨大,整个源码环境都架构虽然一致,但是所用都Libaray不同,最关键的是web server不同,这个是我们与外界交互的最最重要都接口CGI。


    总结 (Conclusion)

       在工作中,开始对怎样提高工作进度进行思考,进行实践。这个也是一种成长吧,刚开始是通过搜索在DM365平台上都宏定义来把类似都代码移植到老的平台,就这样一天过去啦,主要改动都在两个动态链接库上,但是改过之后,心理还是没谱,不知道是不是在做无用功,所以,第一天的晚上,我开始对我的移植工作设立短期目标,以前貌似听过类似都优化工作方法,大的目标可能一时完不成,就把她分解为可以看得到结果都小目标。

           一,主体框架移植,可以编过就OK. ( 2 day)

           二,web server 移植,可以执行CGI. (2 day)

           三,可以通过 OpenHome API访问 Streaming. (1 day)

           四,可以通过Media tunnel 访问 Streaming. (1 day)

           五,主要OpenHome API 测试。Come out a test report.

       上面都整体流程我已经完成了四个,在一个星期之内。而Boss估计都schedule是两个月,大部分可能是后面都第五个,测试过程中发现都bug都要解决啊。这个就是集经验与方法与一体的大作战。在工作中可以极好都实现自身价值,锻炼自身技能,同时提高自我意识形态,I love my job。


    问题与解决方案 (Problem & Solution)

       第一个难解都问题是使用静态链接库编译一个写flash都程序,提示undefined reference to xxxxx.o 之类都错误,但是我需要都lib都引用啦。至少当时是这么认为的,-static 这个flag是那个出问题的东西,我们需要都http://www.msweet.org/projects.php?Z3 其实是一个静态链接库libmxml.a 之前我们用都是libmxml.so    ar xxxx.o xxxx.a。

    第二个问题是web server,从lighttpd 移植到 thttpd-2.5b, 主要是给这个过时都thttpd server 添加一个环境变量,了解web server的运行机制,还是那个server的code架构不是非常复杂,不然可能要花点时间,还得受益于以前对与lighttpd的相关工作比较熟悉,学习自己感兴趣都源码对工作还是有意外都帮助的,这一点你可不能否认,所以,拓展你的知识面吧,你会学到很多东西都。


    吐槽下生活 (Blast)

             由于生活原因我决定辞去我服务两年的工作,去深圳或附近城市发展,首先我想感谢小leader,给了我很多帮助与指导,使我在这两年里成长了许多。感谢公司给了我机会让我为公司效力,感谢同事这两年都关心与帮助。最后,希望能在那里能继续Linux平台编程的工作,关于IP Camera开发的当然更好啦,毕竟是有了两年多都相关经验。云计算也是我关注的领域,希望一切都好。

    展开全文
  • 系统移植到Spring

    2009-10-28 20:28:00
    作者也会描述他遇到的一个问题还有他是怎样来解决它的。 叫我来参加会议晚了,就是这次的Spring框架会议。对于你们后来的人来讲,Spring已经是一个在Apache2.0许可下发布的基础构造代码库。它的核心是一个反转控制...
  • Lession 7 文件系统移植实践一:基于busybox制作可用根文件系统 一个开发中实用的根文件系统,还需要完善哪些内容,怎样来部署一个根文件系统? 一、完善根文件系统 check程序运行库:/lib/ 从交叉编译工具目录...
  • 问题链接:20145327 《信息安全系统设计基础》实验三 实时系统移植 开发板是怎样进入linux和vv模式在成功连接开发板后,如果键入回车Enter键,就进入linux模式,键入其他任何键,进入vv模式 Exp11编译失败...
  • Android 编译FFmpeg我们编译FFmpeg一般在Linux的系统上进行编译,当然windows也是可以的,这里讲解一下在Linux系统上编译。从官网下载FFmpeg(文档编辑时版本 ffmpeg-4.1.4)将下载下来的ffmpeg进行解压去Android...
  • Dynamsoft Barcode Reader是用C/C++实现的企业级条码SDK。尽管SDK可用于Windows、Linux和macOS,但只有一个Windows示例显示如何在版本7.x中...无论您使用何种操作系统,都可以从源代码构建OpenCV库。 视窗 安装...
  • LINUX移植——根文件系统制作(一)

    千次阅读 2013-09-08 13:22:42
    上一篇文章当中,说了说怎样搭建nfs服务器的过程,这也是制作根文件系统前必须的准备工作,当然也可以用其他方法,但从调试的角度来说,还是nfs最适合了。这篇文章咱们正式开始制作根文件系统,主要内容如下: 1....
  • 之前提到了,怎样生成mexw32和mexw64文件我用来生成32文件的source code没错,生成64位也很顺利,但是运行时crash 心都寒了啊,零下12度的天,心也低沉了好在一阵狂搜,找到了一些解决方案,Solution 2:可以用,...
  • 心是我们生活中最常用到的文字之一,因为心有很多种含义,首先在思想上,心被认为是思维器官,比如说思想、意念、感情等等都是由心在运作的。...当然心依旧在我们的身体系统里扮演着非常重要的角色,主要负责为...
  • 移植QT程序

    2018-01-25 18:21:38
    在arm平台上一直qt程序的步骤,怎样修改文件系统开机启动程序
  • 我已经将Linux内核移植到picozed 7015开发板,但是只有一些简单的命令,像ls,cd等,make 等都没有。我怀疑是文件系统没有加载的原因,不知道我的想法是否正确? 另外,怎么加载文件系统呢?
  • 我本来希望看到rtems可以像一个操作系统一样在虚拟机上运行的,可能我对操作系统理解,我想着编译好的rtems可以装到虚拟机上,然后开机之后最起码得有个shell终端给我交互吧,rtems有带终端么?要怎么才能把rtems...
  • 来源:太平洋电脑网一转眼,2020年已经过去了一大半。每年的这个时候,都是Adobe公司推出新版本的时候,今年也不例外。...那么实际效果又是怎样呢一起来看看吧!1. 配置要求高了!功能多了,配置自然也就水涨船高。...
  • 元旦休息,闲来无事,又暂无睡意,写点东西捣鼓捣鼓吧!学的东西多了,就怕忘记以前的知识,所以还是记下来比较好。...由于google谷歌官方不支持我们的cpu架构,而我们又想跑android系统,所以就需要把它移植
  • 本文主要通过裁剪现有...一个当boot分区,一个当/分区3、格式化并且挂载两个分区4、安装grub至目标磁盘5、为grub提供配置文件6、复制内核文件和initrd文件7、创建目标主机根文件系统8、移植bash命令和其库文件到...
  • ros操作系统现在在国内外的现状及发展趋势如何,还有一些ros移植,比如在pcduino上的移植,发展现状怎样
  • 其实就是想尝试一下,如果拿到一块板子,没有系统,是怎样把linux内核及其文件系统移植上去的。主要过程,目前个人认为应该是(一)编译环境的搭建,主要就是交叉工具链;(二)boot loader移植;(三)lin

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 246
精华内容 98
关键字:

怎样移植系统