嵌入式linux

嵌入式Linux i.MX开发板

心不动则不痛 提交于 2020-03-04 07:31:18
文章目录 前言 正点原子 韦东山 野火 米尔科技 飞凌 讯为 明远智睿 微信公众号 前言 NXP一个系列的片子, 有商业的, 也有工业级的, 还有车规的, 学了不后悔, 用上就划算. 只是官方的板子向来不便宜, 配齐更是倾家荡产, 这就越发凸显国内开发者的优势, 现在嵌入式Linux的门槛越来越低, 硬件成本也不比32高多少, 是时候上车了. 追求小批量成本低的话, 可以买核心板+自己画底板的方式, imx6甚至百元左右就能买到一个工业核心板, 核心板接口有邮票孔(米尔, 野火等), BTB接口(原子, 野火imx6, 米尔imx8等), 金手指接口(野火imx6, 欧比特imx8等)这几种, 底板一般4层板足够撸下来了, 甚至比画32的板子都省心许多. 下面罗列几款i.MX6的板子. 正点原子 stm32起家, 当年硬件开源先锋, Alpha i.mx6ull开发板 , 可插拔的BTB核心板+底板, 左盟主领衔, 视频+文档全免费, 资料下载 , 开发板底板资源: 韦东山 韦东山是嵌入式Linux的老前辈了, 视频部分收费, 口碑还不错, 百问科技IMX6ULL开发板 , 用的米尔的邮票孔核心板(8层)+自己画的底板(4层), 资料部分免费 , 板子+7寸电容屏配下来600左右, 板子资源如下: 野火 野火的内功还是比较扎实的, 和原子的发家史有些相像, 也算相爱相杀, i.MX

嵌入式Linux上移植unzip工具

耗尽温柔 提交于 2020-03-03 18:55:06
由于busybox编译出来的unzip不支持有密码的压缩包解压,因此基于unzip60源码包,交叉编译一个嵌入式Linux上的unzip工具。 1.下载地址是: https://sourceforge.net/projects/infozip/ 2.配置 修改unzip60/unix/Makefile: 1 CC =arm-arago-linux-gnueabi-gcc #try using "gcc" target rather than changing this (CC and LD 2 AS = arm-arago-linux-gnueabi-as 3.编译: 1 make generic -f unix/Makefile   topdir目录下生成的unzip即是目标文件。 来源: CSDN 作者: llljjlj 链接: https://blog.csdn.net/llljjlj/article/details/104632646

实验一 Linux系统与应用准备

荒凉一梦 提交于 2020-03-01 19:51:18
实验一 Linux系统与应用准备 项目 内容 这个作业属于哪个课程 课程链接(点击查看) 这个作业的要求在哪里 作业要求链接(点击查看) 学号-姓名 17043214-江飘飘 作业学习目标 学习博客园软件开发者学习社区使用技巧和经验; 学习Markdown的一些编辑文档方法在博客园写博客。 发展方向 ​ 通过这些天观看学习视频,Linux的应用主要在服务器和嵌入式设备上的应用。结合自己的专业及自身的兴趣爱好,我打算往嵌入式Linux的方向发展。 ​ 首先,由于我主要对程序设计比较感兴趣。特别是编写一些微控制器的C程序,像51,32这些。而Linux同样是由C编写的,比较符合我的特长和兴趣。 ​ 其次,由于深入学习cortex-A9的需要,写裸机程序已经不能满足需求而且微控制器的使用效率不高,所以要使用到操作系统,目前在嵌入式方面,主流的操作系统主要有ucos iii、vxworks、wince、linux等。而Linux在arm上的的使用范围最广泛。 ​ 最后,由于嵌入式Linux需要一定的技术门槛,相关方面技术人才缺口大,就业岗位比较多,所以工作也应该相对好找一点。 博客推荐 1、 嵌入式Linux入门:概述 推荐理由:目前我们刚刚学习Linux,对于如何学习Linux还比较迷茫,所以推荐大家可以看看这篇文章来了解如何学习Linux,以及要学习Linux的哪些东西。 2、

嵌入式linux学习笔记二 ——linux嵌入式开发环境搭建笔记

南楼画角 提交于 2020-03-01 01:41:34
这两天学习总结一下 sudo: 为普通用户提升权限 sudo是 linux系统 管理指令,是允许 系统管理员 让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的。 //============================================================================== Sudo passwd root 重置密码 su: 管理员权限切换 SU是( Switch user切换用户),可让一个普通用户切换为 超级用户 或其他用户,并可临时拥有所切换用户的 权限 ,切换时需输入欲切换用户的密码;也可以让超级用户切换为普通用户,临时以低权限身份处理事务,切换时无需输入欲切换用户的密码。 su - root 切换为root用户,需要输入密码,切换后环境变量改变,几乎可以不受限制的做任何事。 su - trunk 从root切换回普通用户,无需输入密码,切换后只拥有trunk权限。 //============================================================================ Sudo apt-get update /

嵌入式Linux开发-uboo移植

一世执手 提交于 2020-02-29 02:01:20
0.准备 有一个Exynos 4412的开发板,正好趁着放假,想移植一个新的uboot和一个新的linux内核,说干就干,顺便把遇到的问题记录下来 uboot版本为2020.01,下载地址: ftp://ftp.denx.de/pub/u-boot/ kernel版本为5.4.9,下载地址: https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/ 交叉编译器下载地址: https://www.linaro.org/downloads/ 1.交叉编译器的安装 在/usr/local/下面创建一个arm的文件夹,把交叉编译工具解压到arm文件夹下。 将该路径添加到环境变量中。 执行source命令 查看交叉编译器是否安装成功 查看交叉编译器版本 2.编译uboot 解压uboot源码,在Makefile文件中修改如下内容 首先配置一个config,确认编译环境 编译完成,编译环境没有问题,下面进行Exynos 4412开发板相关的配置,编译Exynos 4412开发板用的uboot 3.uboot的配置 创建板级目录和板级文件 修改目录下的相应文件 修改Makefile文件 修改Kconfig文件 在configs文件夹下创建defconfig文件 修改其内容 在arch/arm/mach-exynos

基于kernel 4.4的嵌入式linux内核制作

爱⌒轻易说出口 提交于 2020-02-27 09:27:38
1、构建kernel 搭建编译环境 git clone https://github.com/friendlyarm/prebuilts.git -b master --depth 1 cd prebuilts/gcc-x64 cat toolchain-6.4-aarch64.tar.gz* | sudo tar xz -C / #在~/.bashrc文件末尾添加下面两行 export PATH = /opt/FriendlyARM/toolchain/6.4-aarch64/bin: $PATH export GCC_COLORS = auto #运行下面命令使其生效 . ~/.bashrc #测试命令 aarch64-linux-gcc -v 下载代码 git clone https://github.com/friendlyarm/kernel-rockchip --depth 1 -b nanopi4-linux-v4.4.y kernel-rockchip cd kernel-rockchip 修改与保存配置 make menuconfig #修改配置 make savedefconfig ##保存配置 cp .config arch/arm64/configs/nanopi4_linux_defconfig 编译 export PATH = /opt

跟涛哥一起学嵌入式 第05集:一道程序改错题,测出你的嵌入式功底

纵然是瞬间 提交于 2020-02-26 02:52:11
大家好,欢迎阅读《跟涛哥一起学嵌入式》第05集,我们今天讨论一下中断的基本概念。 中断,是嵌入式开发中经常使用的一个功能,也是嵌入式工程师必须要掌握的一个概念:CPU和外设通信时,一般都采用中断的形式异步通信,可以大大提高CPU资源的利用率。而你对中断的理解,到底有多少呢?不要急,一道程序改错题,就可以测出你的嵌入式系统功底。 比如,我们在嵌入式ARM裸机平台上,要实现一个MP3播放器,要求实现如下功能:当按键按下时,可以播放、暂停、播放下一首、上一首。为此,我们设计一个按键中断服务程序,当有按键发生时,我们去读取按键的值,然后再根据按键值去执行不同的操作,设计的按键中断函数如下: int keyboard_isr(int irq_num) { char *buf =(char *)malloc(512); int key_value = 0, key_value = keyboard_scan(); if(key_value == 1) { mp3_decode(buf,"xx.mp3"); sleep(10); mp3_play(buf);//play } else if(key_value == 2) mp3_pause(buf);//pause else if(key_value == 3) mp3_next(buf);//next song else if(key

学习嵌入式Linux-选择iTOP-4412开发板

一笑奈何 提交于 2020-02-25 18:19:27
部分视频观看地址: 【视频教程】 iTOP-4412 开发板之学习方法 -- 致初学者 http://v.youku.com/v_show/id_XNzQ5MDA4NzM2.html 【视频教程】三星 Exynos 4412 处理器开发要点 http://v.youku.com/v_show/id_XNjIwODA0MTY4.html 【视频教程】 iTOP-4412 开发板之如何扩展不同型号 LCD 屏 http://v.youku.com/v_show/id_XNjM4NjY2NDQ4.html 【视频教程】 iTOP-4412 核心板专题 http://v.youku.com/v_show/id_XNzE4OTI1OTI4.html 【视频教程】 iTOP-4412 开发板系统烧写篇(一) http://v.youku.com/v_show/id_XNzIxNTY1OTQ0.html 【视频教程】 iTOP-4412 开发板系统烧写篇(二) http://v.youku.com/v_show/id_XNzIxOTMwMjY4.html 【视频教程】 iTOP-4412 开发板的底板设计 http://v.youku.com/v_show/id_XNzIzNzAxNTI0.html 【视频教程】 iTOP-4412 开发板编译环境的搭建以及编译指引 http://v.youku

Ubuntu12.04嵌入式交叉编译环境arm-linu-gcc搭建过程,图解

删除回忆录丶 提交于 2020-02-25 02:44:59
安装环境 Linux版本:Ubuntu 12.04 内核版本:Linux 3.5.0 交叉编译器版本:arm-linux-gcc-4.4.3 这个版本的交叉编译器我已经上传到了资源上,可以随便下载, 点此下载 安装前的絮叨 首先简单介绍一下,所谓的搭建交叉编译环境,即安装、配置交叉编译工具链。在该环境下编译出嵌入式Linux系统所需的操作系统、应用程序等,然后再上传到目标机上。 交叉编译工具链是为了编译、链接、处理和调试跨平台体系结构的程序代码。对于交叉开发的工具链来说,在文件名称上加了一个前缀,用来区别本地的工具链。例如,arm-linux-表示是对arm的交叉编译工具链;arm-linux-gcc表示是使用gcc的编译器。除了体系结构相关的编译选项以外,其使用方法与Linux主机上的gcc相同,所以Linux编程技术对于嵌入式同样适用。不过,并不是任何一个版本拿来都能用,各种软件包往往存在版本匹配问题。例如,编译内核时需要使用arm-linux-gcc-4.3.3版本的交叉编译工具链,而使用arm-linux-gcc-3.4.1的交叉编译工具链,则会导致编译失败。 那么gcc和arm-linux-gcc的区别是什么呢?区别就是gcc是linux下的C语言编译器,编译出来的程序在本地执行,而arm-linux-gcc用来在linux下跨平台的C语言编译器,编译出来的程序在目标机

Ubuntu 12.04嵌入式交叉编译环境arm-linux-gcc搭建过程图解

删除回忆录丶 提交于 2020-02-25 02:42:27
本文转载自: Ubuntu 12.04嵌入式交叉编译环境arm-linux-gcc搭建过程图解 安装前的絮叨 首先简单介绍一下,所谓的搭建交叉编译环境,即安装、配置交叉编译工具链。在该环境下编译出嵌入式Linux系统所需的操作系统、应用程序等,然后再上传到目标机上。 交叉编译工具链是为了编译、链接、处理和调试跨平台体系结构的程序代码。对于交叉开发的工具链来说,在文件名称上加了一个前缀,用来区别本地的工具链。例如,arm-linux-表示是对arm的交叉编译工具链;arm-linux-gcc表示是使用gcc的编译器。除了体系结构相关的编译选项以外,其使用方法与Linux主机上的gcc相同,所以Linux编程技术对于嵌入式同样适用。不过,并不是任何一个版本拿来都能用,各种软件包往往存在版本匹配问题。例如,编译内核时需要使用arm-linux-gcc-4.3.3版本的交叉编译工具链,而使用arm-linux-gcc-3.4.1的交叉编译工具链,则会导致编译失败。 那么gcc和arm-linux-gcc的区别是什么呢?区别就是gcc是linux下的C语言编译器,编译出来的程序在本地执行,而arm-linux-gcc用来在linux下跨平台的C语言编译器,编译出来的程序在目标机(如ARM平台)上执行,嵌入式开发应使用嵌入式交叉编译工具链。 安装步骤 1、将压缩包arm-linux-gcc-4