
嵌入式Linux系统
嵌入式Linux系统开发技术分享。
501007162021
这个作者很懒,什么都没留下…
展开
-
Linux通过shell脚本操作串口
Linux通过shell脚本操作串口1.向串口发送数据循环发送不同的字符串到串口/dev/ttyS1,时间间隔5秒#!/bin/bashwhile :do echo -e "send_string_1\r" > /dev/ttyS1 sleep 5 echo -e "send_string_2\r" > /dev/ttyS1 sleep 5done循环发送不同的字符串到串口/dev/ttyS1,时间间隔0.5秒#!/bin/bash原创 2020-07-20 21:55:21 · 5632 阅读 · 0 评论 -
VSCode与CMake搭配使用之交叉编译
首先你需要配置VSCode中的CMake插件:VSCode与CMake搭配使用之基本配置,如果你已经配置好了CMake插件,请继续往下看:1. 在VSCode中设置交叉编译工具打开cmake-tools-kits.json文件:vim .local/share/CMakeTools/cmake-tools-kits.json这个文件的作用就是:告诉VSCode当前系统中都有哪些编译器可供使用,一般是CMakeTools插件自动获取到的,但是CMakeTools插件无法自动获取到我们的交叉编译器。原创 2020-07-20 21:48:21 · 11647 阅读 · 0 评论 -
VSCode与CMake搭配使用之基本配置
1.首先安装VSCode插件CMake和CMake ToolsCMake插件主要功能是CMake语法高亮、自动补全CMake Tools的功能主要是结合VSCode IDE使用CMake这个工具,比如生成CMake项目、构建CMake项目等2.新建CMake项目Ctrl+Shift+p打开VSCode的指令面板,然后输入cmake:q,VSCode会根据输入自动提示,然后选择CMake: Quick Start然后选择适合你的编译器(VSCode会将你安装的编译器都罗列出来供你选择。如果你原创 2020-07-20 21:38:53 · 95856 阅读 · 10 评论 -
[u-boot]关于star.s中“异常向量”的一个疑问
File: start.s .globl _start_start: b reset ldr pc, _undefined_instructionldr pc, _software_interruptldr pc, _prefetch_abortldr pc, _data_abortldr pc, _not_usedldr pc, _i原创 2014-08-26 20:17:51 · 464 阅读 · 0 评论 -
【记录】链接地址
原文地址:点击查看原文 连接器脚本xxx.lds文件中指定的地址,就是链接地址,程序运行时必须位于它的链接地址处,汇编文件中的各个标号或者c文件中的各个函数名(函数的入口地址)对应的链接地址就是由链接脚本中的起始链接地址和各个目标文件(.s或.c文件编译但还为链接的文件)的排放顺序有关。这些链接地址可以通过查看可执行文件的反汇编文件即xxx.dis文件来获得。如果你不使用全局变量或者静态变量,访问转载 2016-07-18 10:06:31 · 766 阅读 · 0 评论 -
【记录】Makefile中的%和*
Makefile中的%表示通配符,而*表示任意字符 举例,%.o表示匹配所有的.o文件,注意是用于匹配的。 *.o是表示所有的.o文件。 用途方面:前者一般用作目标,后者一般用作删除原创 2016-07-18 09:40:00 · 1752 阅读 · 0 评论 -
【记录】常用ARM汇编指令
1.立即寻址 ADD R0,R0,#0x01 ;(R0)=(R0+1) 2.寄存器寻址 ADD R0,R1,R2 ;(R0)=(R1+R2) 3.寄存器间接寻址 LDR R0,[R1] ;(R0)=([R1]) STR R0, [R1] ;([R1]=(R0))原创 2016-07-18 09:38:06 · 401 阅读 · 0 评论 -
【记录】Makefile
Makefile简介 在执行make之前,需要一个命名为Makefile的特殊文件来告诉make需要做什么,该怎么做。通常,make工具主要被用来进行工程的编译和程序的连接。 当使用make工具进行编译时,工程中以下几种文件在执行make时将被编译或重新编译: 1.所有的源文件都没有被编译过,则对所有的C文件进行编译和链接,生成最后的可执行程序。 2原创 2016-07-18 09:37:17 · 383 阅读 · 0 评论 -
【记录】Makefile中的$@ $^ $<
$@表示目标文件 $^表示所有的依赖文件$<表示第一个依赖文件原创 2016-07-18 09:36:23 · 393 阅读 · 0 评论 -
【记录】MOV与LDR
数据从内存到CPU之间的移动只能通过LDR/STR指令来完成。 MOV只能在寄存器之间移动数据,或者把立即数移动到寄存器中。原创 2016-07-18 09:34:09 · 459 阅读 · 0 评论 -
【记录】ldr
没有“LDR R1,0x12345678 ”以下两条指令是一样的,都被称为“伪指令”,就是说编译器会把这条指令替换成其他合适的指令。 LDR R1, =0x12345678 LDR R0, =LED_TAB 如果这些数值不太复杂,那么就会用mov指令代替,比如: ldr r1, =0x00 在编译时就会变成: mov r1, #0x00 如果这些数值很复杂,那么编译时,这个数值会被保原创 2016-07-18 09:32:48 · 470 阅读 · 0 评论 -
【记录】dd
dd iflag=dsync oflag=dsync if=210-uboot.bin of=/etc/sdb seek=1dd(disk dump) iflag(input flag) oflag(out flag) dsync(data sync)详细信息请使用一下命令查询: man dd info dd dd –help原创 2016-07-18 09:31:30 · 401 阅读 · 0 评论 -
【记录】.global _start
.global关键字用来让一个符号对链接器可见,可以供其他链接对象模块使用。 .global _start 让 _start 符号成为可见的标识符,这样链接器就知道跳转到程序中的什么地方并开始执行。linux寻找这个 _start 标签作为程序的默认进入点。.global关键字用来让一个符号对连接器可见,可以供其他连接对象模块使用。 .global _start 让_start符号成为可见的标示原创 2016-07-18 09:28:39 · 1848 阅读 · 0 评论 -
【记录】Makefile
make是如何工作的 在默认的方式下,我们只需键入make命令。那么: 1、make会在当前目录下找出名字叫”Makefile”的文件。(详见:Makefile的文件名) 2、如果找到Makefile,make将会找到文件中的第一个目标文件(firstTarget),并把这个文件作为最终的目标文件。 3、如果firstTarget不存在,或者firstTarget依赖的文件firstRely原创 2016-07-18 09:27:09 · 427 阅读 · 0 评论 -
【记录】arm-linux-gcc(ld,objcopy, objbump)
gcc是编译器,负责对c代码的编译, ld是连接器 负责将多个*.o的目标文件链接成elf可执行文件。elf可执行文件是unix常用的可执行文件类型,就像windows的exe文件。elf文件中有很多信息包括段信息还有头信息,这些信息对硬件是没有意义的,所以有的时候我们通过objcopy将elf转化成bin 文件加载到内存中运行,bin文件就是一个纯二进制文件,并且你可以通过objdump将elf文原创 2016-07-18 09:26:13 · 529 阅读 · 0 评论 -
【记录】LDR和MOV指令的区别
原文地址:http://www.cnblogs.com/xmphoenix/p/4370081.html ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令。 比如想把数据从内存中某处读取到寄存器中,只能使用ldr 比如: ldr r0, 0x12345678 就是把0x12345678这个地址中的值存放到r0中。转载 2016-06-22 16:26:54 · 1248 阅读 · 0 评论 -
【资源】DNW驱动,Win7 64位可用
DNW驱动,Win7 64位可用。下载地址:http://pan.baidu.com/s/1nvxpo8L原创 2016-06-13 12:44:37 · 3830 阅读 · 1 评论 -
【实践】在Ubuntu 64位上安装32位版arm-linux交叉工具链
之前在电脑上安装了最新版的Ubuntu 64位系统,可是正确安装arm-linux交叉编译工具链后,无法使用.于是就在网上搜索解决方案,网络搜索的结果是:安装32位共享库即可,并给出了命令sudo apt-get install ia32-libs或者sudo apt-get install ia32-lib*可是执行后,无法安装,提示信息如下:jiasike@jiasike:~$ sudo apt原创 2016-05-24 11:55:07 · 10931 阅读 · 0 评论 -
【记录】内核的并行
现代处理器,都是这几种并行结构的混合体。在空间并行的3种类型中,指令并行和数据并行是底层的并行,更多的由处理器或编译器实现。线程并行是高层的并行,硬件只提供支持,并行由程序员实现。超标量并不需要程序员干预,VLIW和数据并行通常需要程序员协助编译器优化以获得更好的并行性。线程并行几乎完全由程序员根据应用来决定并行性,某些并行编程平台能辅助程序员更方便的编写多线程程序。指令并行和数据并行受处理器结构限原创 2016-05-24 11:42:37 · 1315 阅读 · 0 评论 -
【记录】PWM-HBridge
DCMotorRound.C1.2 KBpwm_HBridge.C2.6 KB原创 2014-12-26 19:03:56 · 809 阅读 · 0 评论 -
【知识点】位操作
1、对于不需要操作的位,要保持它们的原值。2、对于需要操作的位,若是置位操作,要先清零再置位。3、对于需要操作的位,若是清零操作,直接清零即可。//bit operationGPJ2CON &= ~(0xFFFFGPJ2DAT |= (0x1111原创 2014-09-08 21:43:49 · 503 阅读 · 0 评论 -
【知识点】s5pv210寄存器设置示例
S5PV210寄存器设置示例:1、汇编设置寄存器 ldr r0, =0xE0200280 ldr r1, =0x00001111 str r1, [r0]@将GPJ2CON[0]~GPJCON[3]设置为输出,即设置与LED相连的4个引脚为输出 ldr r0, =0xE0200284 move r1, 0xF0 str r1,原创 2014-09-08 21:40:21 · 1521 阅读 · 0 评论 -
【实践】s5pv210烧写裸机文件的方法之通过U-boot烧写到内存
操作步骤:1、烧写Uboot到SD卡 dd iflag=dsync oflag=dsync if=webee210_uboot.bin of=/dev/sdb seek=12、从SD卡启动开发板3、使用Uboot配合dnw或者tftp烧写程序到DDR2。我们也可以使用友善之臂的Superuboot操作步骤:1、使用SD-Flasher烧写Superuboot原创 2014-09-08 21:38:07 · 824 阅读 · 0 评论 -
【记录】s5pv210烧写裸机文件的方法之烧写到SD卡
dd命令详解命令如下:dd iflag=dsync oflag=dsync if=led.bin of=/dev/sdb seek=1作用:将led.bin文件烧写到SD卡的第一个扇区后的16K空间中。iflag=FLAG 以FLAG指定的方式访问输入文件oflag=FLAG 以FLAG指定的方式访问输出文件FLAG:网络释义:dsync 指先把文件写入缓冲原创 2014-09-08 21:36:09 · 1550 阅读 · 0 评论 -
【记录】s5pv210运行裸机程序的方法之在SDRAM(DDR2)中运行
从S5PV210的启动过程中可以知道,要想让我们的裸板程序运行起来有两种方法:说明:我们假设从SD Card启动1、在Internal RAM(iRAM)中运行2、在SDRAM(DDR2)中运行,此方法需要借助Bootleader这里介绍第一种方法:在SDRAM(DDR2)中运行 S5pv210一上电就会去执行固化在iROM中的代码BL0,BL0会去SD卡加载原创 2014-09-08 21:30:53 · 1379 阅读 · 0 评论 -
【记录】s5pv210运行裸机程序的方法之在iRAM中运行
从S5PV210的启动过程中可以知道,要想让我们的裸板程序运行起来有两种方法:说明:我们假设从SD Card启动1、在Internal RAM(iRAM)中运行2、在SDRAM(DDR2)中运行,此方法需要借助Bootleader这里介绍第一种方法:在Internal RAM(iRAM)中运行 S5pv210一上电就会执行固化在iROM中的代码BL0,BLO会去拷贝SD卡原创 2014-09-08 21:17:59 · 1269 阅读 · 0 评论 -
【记录】Ubuntu 14.04 LTS自带截图功能的使用
更多精彩资讯,请扫码关注原创 2014-11-11 12:22:10 · 524 阅读 · 0 评论 -
【记录】Ubuntu安装Autotools
命令如下:apt-getinstall autoconf原创 2014-11-10 21:46:50 · 1081 阅读 · 0 评论 -
【未解决】Ubuntu设置静态ip(存在疑问)
打开终端,启动文本编辑器来编辑Linux网络配置文件,命令如下:sudo gedit /etc/network/interfaces 在这里你应该会看到如下内容: auto lo iface lo inet loopback 这个正是lo回环,我需要让这台运行Ubuntu Server的机子通过DHCP获得IP来加入网络,那么我只需要在上面的lo回环的配置内容下面加入转载 2014-11-03 22:01:28 · 672 阅读 · 0 评论 -
【记录】详解Ubuntu软件源
新手学Ubuntu的时候,一般不知道什么是源,但源又是Ubuntu下常用到的东西。因此,本文就详细介绍一下Ubuntu源。什么是软件源?源,在Ubuntu下,它相当于软件库,需要什么软件,只要记得正确的软件名就可以用命令安装:sudo apt-getinstall 软件名例如:你要安装gcc软件,那么你就可以再终端中输入sudoapt-get install gcc,这样就转载 2014-11-03 13:44:26 · 619 阅读 · 0 评论 -
【记录】Ubuntu目录结构
ubuntu 系统目录结构刚刚接触unbuntu系统,对于用惯了windows的我,真的有点不习惯,今天在这里好好理解以下目录结构:ubuntu没有盘符这个概念,只有一个根目录/,所有文件都在它下面/ 根目录 bin //系统程序 boot //内核和启动程序,所有和启动相关的文件都保存在这里 grub //引导器转载 2014-10-31 19:34:38 · 432 阅读 · 0 评论 -
【记录】Ubuntu以管理员身份打开图形界面
sudo nautilus更多精彩资讯,请扫码关注原创 2014-09-19 22:05:30 · 3464 阅读 · 0 评论 -
【知识点】Linux下tar.xz结尾的文件的解压方法
原文地址:http://blog.youkuaiyun.com/silvervi/article/details/6325698 今天尝试编译内核,下载到了一份tar.xz结尾的压缩文件,网上解决方法比较少,不过还是找到了,如下:$xz -d *.tar.xz$tar -xvf *.tar 可以看到这个压缩包也是打包后再压缩,外面是xz压缩方式,里层是tar打包方式。 补充:目前可以直接使用 tar转载 2015-05-26 19:48:03 · 2286 阅读 · 0 评论 -
【记录】Linux的五个查找命令
原文地址: http://www.ruanyifeng.com/blog/2009/10/5_ways_to_search_for_files_using_the_terminal.html1. findfind是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。 find的使用格式如下: find<指定目录><指定条件><指定动作> −<指定目录>:所要搜索的目录及其所有子目录转载 2015-06-14 10:38:28 · 637 阅读 · 0 评论 -
【知识点】patch补丁文件格式
补丁文件示例 --- ../a.txt 2016-06-17 15:53:27.377843924 +0800 +++ ../b.txt 2016-06-17 16:05:59.039229326 +0800 @@ -1,9 +1,12 @@ -q -w -e +a +s +d x y z -e -w -q +d +s +a +1 +原创 2016-06-17 16:22:03 · 13083 阅读 · 2 评论 -
【偶然问题】将压缩文件从Windows拖拽到虚拟机中后无法正常解压的问题
本文实验环境:VMware8.0.4 build-744019 Ubuntu16.04 64bit LTS现象如下图所示:原因:拖拽文件在传输过程中发生错误,导致文件不完整(具体是哪里引起的,暂且还不知道)解决方案:1. 使用FTP服务http://blog.youkuaiyun.com/jiasike/article/details/516926922. 创建共享文件夹 (操作方法请自行搜索)原创 2016-06-16 16:59:41 · 5820 阅读 · 0 评论 -
【经验】VMware Tools安装时出现错误提示:Read-only file system
VMware Tools安装时出现错误提示:Read-only file system解决办法:不要在 VMware Tools挂载的文件夹下解压就可以了,因为挂载的 /media是一个只读文件系统。原创 2016-06-15 17:00:48 · 5330 阅读 · 0 评论 -
【教程】Autotools的初级使用
Autotoos官方Manual地址:https://www.gnu.org/software/autoconf/manual/autoconf.html#Making-configure-Scripts下面是Autotools的几个工具的使用流程,通过这个使用流程,我们就可以大概了解Autotools的使用方法.下面,我将以一个实例,具体讲解Autotools的使用方法1.创...原创 2014-11-11 12:59:49 · 638 阅读 · 0 评论 -
【记录】ARM命名规则
http://blog.youkuaiyun.com/b_fushuaibing/article/details/5435442转载 2014-11-11 17:10:09 · 678 阅读 · 0 评论 -
你真的理解补码吗?
补码“在计算机系统中,数值一律用补码来表示。” 教科书上虽然这么说,但是却没有告诉我们为什么,今天小编就带大家一探究竟!计算机数值运算的基础硬件就是加法器,所以我们就从加法器讲起。1. 加法器加法器是计算机数值计算的最基础硬件单元,加减乘除都是以加法器为基础实现的。加法器的构成如下图所示,其中S是和数,C是进位。半加器半加器电路是指对两个输入数据位相加,输出一个结果位和进位,没...原创 2019-07-13 20:57:50 · 395 阅读 · 0 评论