以ARM32开发板为例,在/lib下有一个名为ld-linux-armhf.so.3的可执行程序(在ARM64开发板上是/lib/ld-linux-aarch64.so.1),这个程序负责加载可执行程序以及依赖的动态库: # /lib/ld-linux-armhf.so. Usage: ld.so [OPTION]... EXECUTABLE-FILE [ARGS-FOR-PROGRAM...] You have invoked `ld.so', the helper program for s…
当前流行的字符编码格式有:US-ASCII.ISO-8859-1.UTF-8.UTF-16BE.UTF-16LE.UTF-16.GBK.GB2312等,其中GBK.GB2312是专门处理中文编码的.而libiconv是一个常用的编码转换库,支持常用的多种编码之间的转换.在Linux下,工具链gcc有专门的libiconv库,所有不用移植,但在arm-linux下就没那么幸运了,需要我们额外移植libiconv库,不过,过程还是比较简单的. 一.字符编码转换libiconv库介绍 libiconv…
邮箱:pengdonglin137@163.com 参考:https://stackoverflow.com/questions/1706328/how-do-shared-libraries-work-in-a-mixed-64bit-32bit-system 概述 在嵌入式开发时,经常会通过编译busybox来制作rootfs,然后在上面跑可执行程序.那么如何通过修改配置,让一个rootfs同时兼容32位和64位的可执行程序呢? 我们知道,如果EL1运行在64位时,那么EL0既可以运行在64…
在linux下正常的程序,移植到ARM上,中文不能显示.网上好多介绍,一头雾水.查看其中话题是关于中文显示的(http://www.qtcn.org/bbs/simple/?t55852.html).经过实践能行.过程如下: 看ARM上的环境: TSLIB_TSDEVICE=/dev/input/touchscreen0 USER=root OLDPWD=/home/root HOME=/home/root PS1=\u@\h:\w\$ QT_QPA_PLATFORM_PLUGIN_PATH=/…
最近在调试arm与外设iic通讯是,想来个投机取巧,先不写单独的驱动,直接通过iic bus设备是否可以连接到外设,然后发现在板子上找不到"/dev/i2c-n"的设备,标准的系统应该都是有的. 回去看内核驱动 代码位于 lichee/linux-3.10/drivers/i2c/ # # Makefile for the i2c core. # obj-$(CONFIG_I2C_BOARDINFO) += i2c-boardinfo.o obj-$(CONFIG_I2C) += i2…
1.对于python,ctypes只能load动态库,但现在我的对象是一个静态库,而且我没有源代码,静态库在编译过程中没有加--fPIC参数,所以我也没办法将其编译为动态库,有没有什么方法在python里可以调用静态库的函数? 答案:静态库.a 如果编译时没有加-fPIC参数,需要加上-fPIC重新编译生成,然后可以被c++/c程序引用,并编译生成共享库.so,被python调用.g++ 编译生成方式如下: g++ -shared -fPIC -o libmyAPI.so myAPI.o g++…
librws: Tiny, cross platform websocket client C library 相关代码可在下面下载,也可进入librws: 将librws移植到鸿蒙Hi_3861开发板上 (gitee.com)查看 技术有限,如有错误还望不吝赐教. 基础:完成官方的快速入门教程 虽然在web双向通信中,除了使用ajax(单向轮询)外,一般都推荐websocket,但网上关于websocket的实现代码很少,而且大部分为js和java,很少有C语言.因为课程项目开发需要使用到we…
实验环境:迅为提供的Ubuntu12.04.2 以及虚拟机 编译器:arm-2009q3 编译器 开发板系统:QT系统   开发板使用手册中给Windows 系统安装了 ssh 客户端,给 Ubuntu 安装了 ssh 服务器,这样就可以通过ssh 在 Windows 和虚拟机 Ubuntu 之间传输文件.其实在开发 板上也是可以移植和安装ssh 服务器,这样就可以通过网络,在 Windows 和开发板之间传 输文件.“实战教程-ssh 服务器移植到开发板”,我们要完成的目标是能够通过 ssh…
本文转自迅为开发板:http://www.topeetboard.com 在前面实战教程中,移植了“串口文件传输工具”,整个移植过程是比较简单的,而且我 们没有做任何协议方面的了解,只是“配置”+“编译”就完成了整个工作,现在大家应该对 移植开源软件有了基本的了解. 入门视频教程中,给 Windows系统安装了 ssh 客户端,给 Ubuntu 安装了 ssh 服务器, 这样就可以通过 ssh 在 Windows和虚拟机 Ubuntu 之间传输文件.其实在开发板上也是可以 移植和安装 ssh 服…
作者:冯老师,华清远见嵌入式学院讲师. 1. 搭建Qt开发环境平台 1.开发环境:ubuntu 12.04 2.交叉编译链:arm-cortex_a8-linux-gnueabi 3.开发板:FS210 2. Qt移植所需的工具 首先,我们可以从官网下载Qt源码,1) qt-everywhere-opensource-src-4.7.0.tar.gz QT的源码包(库)2) qt-sdk-linux-x86-opensource-2010.05.bin QT-IDE开发软件3) tslib-1.…
博客地址 : http://blog.csdn.net/shulianghan/article/details/40299813  本篇文章中用到的工具源码下载 : -- ok-6410A 附带的 Android 光盘 下载地址 : http://pan.baidu.com/share/link?shareid=3662728609&uk=2754759285 ; -- 光盘所含内容 : Android 引导 u-boot 源码, Android 内核 源码, Android 系统源码, 交叉编…
ubuntu 交叉编译qt 5.7 程序到 arm 开发板平台1 ubuntu 12.042 arm-linux-gcc 4.5.13 QT 5.74 开发板210 armcortex-A8 一 概述QT5的ARM移植及其中文显示 二 准备工具1.交叉编译工具(arm-linux-gnueabi-4.5.1.tar.bz2)2.交叉编译好的Qt库(armqt5.5-gec.all.fonts.tar.bz2)3.要用到的库(Qt依赖的库)(armlib-all.tar.bz2,字体,触摸屏,总线…
昨天在B站上突然看到了一个短视频,是在正点原子的战舰V3开发板上移植华为的Huawei LiteOS操作系统,就是这个视频:看完鸿蒙OS发布会,试用华为的物联网操作系统Lite OS(B站),于是呢,心血来潮,想在自己现有的开发板上移植Huawei LiteOS操作系统,在操作之前想要考清楚一些基本知识.  首先,什么是Huawei LiteOS,百度搜索Huawei LiteOS,可以搜到很多关于Huawei LiteOS的信息,并且还有官网,进入官网:华为Huawei LiteOS官网.稍微…
原创作品,转载请注明出处 copyright:weishusheng   2015.3.18 email:642613208@qq.com 平台: Linux version 2.6.32-279.el6.x86_64 交叉编译器路径:/opt/buildroot-2012.08/arm920t/usr/bin/arm-linux- 开发板:FL2440 开发板运行内核:linux3.0 开发板文件系统:initramfs easycwmp是基于cwmp协议开发出的CPE客户端,它的运行需要相应…
上篇博文介绍了无线mesh网络和adhoc网络的区别,这篇文章将介绍无线mesh网络的骨干网节点的组建过程.首先需要介绍下骨干网节点的设计方案:每个骨干网节点都是由一块友善之臂的tiny6410 arm开发板+两块TP-LINK TL-WN721N USB无线网卡+linux 2.6.38系统组成的,其中一块网卡工作在adhoc模式下,用来和其他骨干网节点进行无线连接(自组织形式连接,而不是wifi接入点方式),另一块网卡工作在wifi的master模式下,也就是说需要在这块网卡上创建wifi热…
前面一篇文章http://www.cnblogs.com/linzizhang/p/4817336.html介绍了开发板上系统软件的第一部分--bootloader的编译方法. 背景:把bootloader烧写到开发板的Nand Flash中后,开发板从Nand启动,硬件会自动将bootloader加载到内存中运行,bootloader将板载资源都初始化完成后,会停留在一个命令行界面,接收并执行用户敲入的命令.这时候用户可以通过命令控制开发板,比如查看参数列表:print.读写nand:nand…
ARM开发板做相关开发,为了调试方便,常把开发板mnt目录挂载到虚拟机nfs共享目录上,这样调试程序时候就不用把程序转到开发板上再运行,方便很多.要挂载nfs共享目录,需要安装必要的组件支持. 1.虚拟机nfs服务支持安装 1)执行以下命令安装nfs sudo apt-get install nfs-kernel-server portmap 2)配置nfs共享目录 配置文件为/etc/exports,打开配置文件屏配置共享目录       打开命令:sudo gedit /etc/export…
交叉编译环境以及开发板上-/bin/sh: ./hello: not found 目标板是S3C2440.至于交叉编译环境的搭建就不多说了,网上很多教程. 搭建好了交叉编译环境后,第一件事就是传说中的”Hello,World!”. 一. 主机编译环节 我使用的系统是ubuntu10.04,搭建好交叉编译环境后,终端输入arm-linux-gcc -v能够正常显示版本信息,但是输入sudo arm-linux-gcc -v后却显示命令无法找到. 我试过很多种方法,比如sudo -s切换到root后…
前段时间有人遇到一些网络连接问题,让我帮忙处理,他想让ARM开发板连接外网,可以连接网络数据库,同时保证自己的电脑可以上网. 本来说直接可以连接一个路由器,分配一个内网IP给ARM就可以了,但是当时那个朋友是在我们学校做的.我们学校的情况是,基本所有的内网IP都分配好了(可能没有多余的IP地址,找起来比较麻烦).其次所有上网都需要用到蝴蝶,没有蝴蝶上不了外网.但是路由器不能登陆蝴蝶,也就是说路由器下连接的所有终端设备(pc机.ARM)都需要登录一个对应的蝴蝶才能上外网. 这样情况就复杂了,后来我…
从2015.11.13日开始接触arm开发板,开始学习Qt,到现在已经四个月零17天了,从一个拿到开发板一无所知的小白,到现在能够在开发板上进行开发,有付出有收获. 之前一直没有时间将这个过程中的一些开发笔记整理出来,现在终于有点时间,从现在开始,每天抽出一点时间,将开发过程中遇到的一些问题,整理出来,以随笔的形式进行记录,一方面将开发的过程记录下来,方便以后进行查看,另一方法给网上其他朋友一个参考,防防止其他朋友走过多的弯路. 2016.03.30…
本节介绍如何编译可以在开发板上运行的应用,编译方法很简单.基于:iTOP4412开发板首先要确定一下环境变量,如下图所示,使用“cd”命令回到根目录,然后使用命令“vim .bashrc”打开环境变量文件. 如下图所示,进入最底行,这里使用的和编译内核的编译器一样就可以. 使用命令“cd /home/linuxsystemcode/helloworld/”回到“/home/linuxsyetemcode/helloworld”目录中,如下图所示,使用命令“ARM-none-linux-gnuea…
转载:http://www.nginx.cn/1521.html 如果开发板的操作系统也是linux,core调试方法依然适用.如果开发板上不支持gdb,可将开发板的环境(依赖库).可执行文件和core文件拷贝到PC的linux下.在 PC上调试开发板上产生的core文件,需要使用交叉编译器自带的gdb,并且需要在gdb中指定solib-absolute-prefix和 solib-search-path两个变量以保证gdb能够找到可执行程序的依赖库路径.有一种建立配置文件的方法,不需要每次启动…
ARM开发板运行Linux系统后,插入U盘,通过串口打印系统识别到U盘如下: 系统识别U盘盘符为sda4 那么需要挂载后才能操作U盘:挂载命令 mount -t vfat /dev/sda4 /mnt 如下: root@socfpga:~# mount -t vfat /dev/sda4 /mnt 查看是否挂载成功命令:df -h root@socfpga:~# df -h 如下看到mnt目录挂载成功: 可以看到/mnt 目录已成功挂载.…
在HelloX开发团队的努力下,以及Winzent Tech公司(总部在瑞典斯德哥尔摩)的支持下,HelloX最新版本V1.78已成功移植到MinnowBoard MAX开发板上.相关源代码已经发布到github上(github.com/hellox-project/HelloX_OS),欢迎感兴趣的朋友下载测试. MinnowBoardMAX是在Intel的支持下,由Circuit公司开发的一款基于Intel ATOM处理器的卡片式电脑,具备超高的性能,丰富的扩展性,以及相对较低的功耗和成本.…
由于项目的需要,老板让我使用arm开发板(友善之臂的tiny6410)搭建无线mesh网络.一般而言,无线自组织网络的网络设备都是由用户的终端设备来充当,这些终端设备既要处理用户的应用数据,比如娱乐,办公等各方面数据,又要充当路由器,来进行路由转发:另一方面,这些用户终端设备的移动性也较强.对于前者,终端设备的绝大多数软硬件资源都花费在了用户的应用数据处理上了,留给网络转发使用的资源所剩无几,因此这些终端设备一般无法胜任大规模的网络拓扑结构.大数据量(比如音.视频多媒体数据)转发的这些任务:对于…
先说段废话,话说在linux 2.6.34 下,好多比较新的3G网卡及3G模块都没有很好的支持.如果想支持的这些3G网卡/3G模块呢,基本上有两种方式: 1.使用该3G模块的 linux 下的驱动,交叉编译为*.ko ,然后放到开发板下,insmod 进去.然后接入3G模块,ls /dev/下,会发现3G驱动接口ttyUSB0--3 生成.然后想这些ttyUSB*接口发送AT指令,即可拨号上网.具体的拨号方式网上有很多,这里不赘述. 2.使用usb_modeswitch -c /etc/usb_…
前面两篇文章分别介绍了mini2440开发板上运行的bootloader和kernel,到这里系统启动后其实是停留在一个“僵死”的状态---无法挂载根文件系统. 这里将介绍如何制作一个根文件系统,并且挂载到内核中---即让内核能够访问到文件系统中的目录和文件.从用户的角度来看文件系统无非就是各个目录和文件,注意,这些目录和文件可以存在内存中,也可以存在Nand Flash 或者NOR Flash中,视具体的文件系统而定.本文就用基于内存的initram 和基于网络的nfs文件系统做例子介绍文件系…
本文和另外两篇姊妹篇都是为了说明如何裁剪出适合在mini2440 开发板上运行的Linux系统,以记录自己的学习成果.其中本文先介绍了嵌入式系统的软件组成部分,然后介绍编译出适合在mini2440开发板上运行的uboot的方法步骤. 说明:笔者使用的开发平台---RetHat linux系统,开发板---Friendly mini2440 在开始讲述系统移植的具体方法之前,先大致了解一下嵌入式系统的软件组成: 从上面这个图可以看出,嵌入式系统的软件组成主要包括bootloader.内核以及根文件…
一.运行在TQ2440开发板上的linux内核编译 1.获取源码并解压 直接使用天嵌移植好的“linux-2.6.30.4_20100531.tar.bz2”源码包. 解压(天嵌默认解压到/opt/EmbedSky/linux-2.6.30.4/中) tar xvjf linux-.4_20100531.tar.bz2 -C / 2.获取默认配置文件 可以使用“config_EmbedSky_W43”作为默认配置文件 cp config_EmbedSky_W43 .config 3.配置(根据需…
直观来讲,ARM开发板多数情况下会有条网线与主机相连,所以最重要的一步是保证PC主机与ARM开发板能互通. 互通的意思进一步来讲就是互相能ping通.也就是说在瘟都死的dos下(假设主机是瘟都死系统)ping 目标板ip 能收到回复: 在ARM板下(一般通过主机中串口)ping 主机ip能有回复,这样就说明板子和电脑通信没问题. 本鸟犯了个低级错误(这可能也是嵌入式初学者常遇到的问题): 本鸟买了个路由器(不知道实验室能不能报销)连接arm板和PC机,.....一系列前期工作都做好了,就等着相互…