嵌入式开发完整体系课程(含项目) 扫二维码继续学习 二维码时效为半小时

(171评价)
价格: 598.00元

嵌入式第一课 Linux介绍

1.什么是linux

 

[展开全文]
q1034102943 · 17天前 · 0

1.通过NFS挂载分区

======================

1.1在Ubuntu安装、配置NFS服务(假设Ubuntu的IP是192.168.1.100,NFS的共享目录是/opt)

1.2在开发板执行:

mount 192.168.1.100:/opt /mnt -t nfs -o nolock

==>将网络上IP为100的主机中的/opt挂载到开发板的/mnt下

 

 

[展开全文]
zhengzhenchao · 01-01 · 0

终端:gcc debugme.c -o debugme -g

终端:./debugme

终端:gdb ./debugme

(gdb)list      //查看当前正在调试的代码

若要重复命令的话直接敲回车。

当继续敲list或者l,或者继续敲回车,此时代码已经显示完了的时候,要重新显示代码的话

(gdb)list 1    //从第一行显示代码:l 1

也可以指定显示的范围

(gdb)list 5,12   //从第五行显示到第十二行

 

终端:b 14

在程序第14行设置断点

 

单步调试有两种方法

第一种方法:next

如果用第一种方法,它会将函数调用当做是一步,就跳过去

第二种方法:step

如果用第二种方法,它遇到函数调用的时候就会进入函数内部

 

如果不想一步一步运行就加参数

(gdb)s 10            直接运行10次

查看变量的值

(gdb)print i

或者(gdb)p i

持续跟踪变量的变化

display i

设置一个带条件的断点,如果不满足条件就不用停下来

(gdb)b 24 if i >=99

//在24行设置断点,i>=99

(gdb)continue

//不用一步一步地调,不断地往下运行,不断地执行循环,一直到遇到下一个断点,当i>=99就会停下来

#ifdef DEBUG

printf("[%d]\n",__LINE__);//打印当前行号

#endif

终端:gcc debugme.c -o debugme -DDEBUG

 

终端:/debugme

Segmentation fault(core dumped)

终端:ulimit -a

core file size     (blocks,-c) 0

.................................................

终端:ulimit -c unlimited

终端:ulimit -a        

core file size      (blocks,-c)unlimited

...............................................................

终端:gcc debugme.c -o debugme -g

终端:./debugme

Segmentation fault(core dumped)

终端:ls

core debugme debugme.c

终端:gdb ./debugme core

指明了程序为什么会出现段错误。

 

产生段错误会产生core文件,通过core文件使用gdb来快速定位

[展开全文]
zhengzhenchao · 01-01 · 0

ls > file 或者写成ls 1> file

因为在默认情况下,1是标准输出,是可以省略可以忽略的。

同样道理,0是标准输入,可以省略不写可以写成ls 0< file也可以写成ls < file

2是出错信息,是不能省略的。写成ls 2> b.txt

 

[展开全文]
zhengzhenchao · 01-01 · 0

星号*代表任意长度的任意字符

一个问号?就代表一个任意字符

一个方括号[]代表一个字符,一个指定范围的字符。

 

终端:touch file1 file2 file3 file123 file12 file23 filea fileb filec

终端:ls file*

file1 file2 file3 file123 file12 file23 filea fileb filec

终端:ls file?

file1 file2 file3 filea fileb filec

终端:ls file??

file12 file23

终端:ls file???

file123

终端:ls file[0123456789]

file1 file2 file3

终端:ls file[013456789]

file1 file3

终端:ls file[abcdef]

filea fileb filec

终端:ls file[0-9]

file1 file2 file3

终端:ls file[a-z]

filea fileb filec

终端:ls file[a-zA-Z]

filea fileb filec

终端:ls file[a-zA-Z0-9]

file1 file2 file3 filea fileb filec

终端:ls file[^a-z]

file1 file2 file3

终端:ls file[^0-9]

filea fileb filec

 

 

[展开全文]
zhengzhenchao · 01-01 · 0

环境变量设置

1.在家目录下面,终端输入命令:ls -a

2.终端输入命令:vi .bashrc

3..bashrc配置文件最后面写:

export PATH=$PATH:/home/gec

保存并退出

[展开全文]
zhengzhenchao · 01-01 · 0

分区的情况:有主分区和逻辑分区之分

 

在主分区中可以有引导代码,可以装内核,装系统。系统所在的分区必须是主分区。可以引导内核启动。

一块硬盘可以最多分四个主分区,一个硬盘理论上可以装四个操作系统。

主分区还有一个功能可以变成扩展分区,里面可以分成很多逻辑分区。

 

fdisk

============

1.作用:查看系统已识别的分区

2.用法:

           sudo fdisk -l

 

mount/umount

========================

1.作用:挂载/卸载分区

2.用法:

           mount /dev/sdb1 /mnt   

==>将分区/dev/sdb1(比如一个u盘)挂载到/mnt下。

            mount 192.168.1.100:/opt /mnt -o nolock -t nfs           

==>将网络上IP为192.168.1.100的主机中的/opt,按照NFS网络文件系统格式,挂载到本

sudo umount /dev/sdb1   

==>卸载分区/dev/sdb1

sudo umount /mnt

==>卸载挂载点是/mnt的分区

注意:

       挂载点不能是系统的关键目录!否则系统就死翘翘!

 

[展开全文]
zhengzhenchao · 01-01 · 0

1,硬链接文件 == 文件的引用 == 文件别名
   古老的一种文件,已经被遗弃。

   缺陷:不能给目录取别名
         不能跨分区

2,软连接文件 == windows快捷方式

ln(link)
================
1.作用:创建一个硬链接/软连接文件
2.用法:
    ln file FILE        ==>给文件file取一个别名叫FILE
    ln file ln2file -s    ==>创建一个叫做ln2file的软连接文件,指向file

[展开全文]
zhengzhenchao · 01-01 · 0

r-读权限

w-写权限

x-可执行权限

 

如果我是文件的所有者,即文件是我创建的,那么我的权限是由第一组说明的。

第二组权限是针对这个文件创建者同一个组的成员。

第三组权限是针对其他人用户

 

目录项只有名字和索引号

[展开全文]
zhengzhenchao · 01-01 · 0

echo:显示文本

echo abcd

abcd

A=apple

echo $A

apple

1.作用:打印信息

2.用法:

echo "hello" ==>打印hello

echo $PATH  ==>打印变量PATH的值

 

date:显示时间和日期

 

tar

1.作用:归档、压缩

2.用法:

tar czvf example.tar.gz file1 file2 dir1/ dir2/

==>将file1 file2 dir/1 dir2/统统按照gzip格式压缩成example.tar.gz

 

tar -tf example.tar.gz

==>查看压缩包example.tar.gz中有哪些文件

tar xzvf example.tar.gz 

==>将example.tar.gz中的文件解压到当前目录

tar xzvf example.tar.gz -C dir/

==>将example.tar.gz中的文件解压到dir/

注:

将以上命令中的'z'改成'j',那就是针对bzip2格式的命令,bzip2格式的压缩包的后缀是example.tar.bz2

 

whereis:查找命令 (不仅告诉你命令在哪,而且告诉你命令的帮助文档在哪)

which:查找实用程序(告诉你命令的位置)

ps(process state)进程

ps -ef | more   分屏显示

 

top 相当于任务管理器

kill -s SIGKILL 8884 (8884是PID号)

PID号通过 ps -ef 命令查看

 

ps(process state)

1.作用:查看当前瞬间系统各进程的信息

2.用法:

ps -ef

ps aux

ps ajx

 

kill

1.作用:给一个指定的进程,发送一个指定的信号

2.用法:

kill -s SIGKILL 1234  ==>给进程号为1234的的进程发送SIGKILL

kill -9 1234  ==>给进程号为1234的进程发送9号信号(即SIGKILL)

killall process-name  ==>给进程名为process-name的进程发送SIGTERM

 

top

1.作用:动态查看当前系统的进程信息

2.用法:

top  ==>查看系统所有进程的状态信息(使用<和>来翻页,使用q退出)

top -p 1234  ==>跟踪进程号为1234的进程状态信息

 

df/du

1.作用:查看系统各个分区的详细信息/查看文件或目录的大小

2.用法:

df -h  ==>以人类看得懂的方式显示当前系统的各个分区情况

du -sh file  ==>显示文件file的大小

du -sh dir/  ==>显示目录dir/的大小

 

 

 

 

 

 

[展开全文]
zhengzhenchao · 12-30 · 0

cd(change directory)

1.作用:改变当前工作路径

2.用法:

cd dir/ ==>将当前工作路径改为dir/

cd -   ==>回到刚刚去过的目录

cd    ==>将当前工作路径改为家目录

 

find

1.作用:查找文件

2.用法:

find dir/ -name "xxx" ==>在dir/查找名字为xxx的文件

find dir/ -name "*.c" ==>在dir/查找后缀名是.c的文件

 

grep

1.作用:查找字符串

2.用法:

grep "apple" dir/ -Hrnw ==>在dir/中,递归(r)按照全字匹配(w)查找"apple"这个字符串,并且找到之后打印出其所在文件名字(H)以及行号(n)

 

head/tail

1.作用:查看一个文件的开头/结尾的若干行

2.用法:

head file -n 10 ==>查看文件file的头10行

tail file -n 20 ==>查看文件file的末20行

 

sort:按次序显示文件(按ASCII码排序)

uniq:去掉文件中相邻重复的行

 

diff / patch
=========================
1,作用:产生补丁文件 / 打补丁
2,用法:
diff pro1.0  pro2.0 -urNB > 1.0.patch 

==> 比较两个版本,将他们的差异按照标准补丁格式存放到1.0.patch当中。

  patch -p0 < 1.0.patch
  ==> 将1.0.patch对当前目录(-p0)打补丁。

  patch -p0 < 1.0.patch  -R
   ===>反补丁

 

file:查看文件类型

 

 

[展开全文]
zhengzhenchao · 12-30 · 0

ls (list)

1.作用:列出指定目录下的文件信息

2.用法:

ls   ==>列出当前目录中的文件名

ls dir/  ==>列出指定目录dir/中的文件名

ls -l  ==>列出当前目录中的文件的详细信息

ls -a  ==>列出当前目录中的文件名

      (包括以.开头的隐藏文件)

 

.   当前目录

..  上一级目录

../..上上级目录 

 

man(manual)

1.作用:对相应的条目查找帮助

2.用法:

man ls ==>查找关于ls的默认的帮助条目

man -f read ==>列出所有关于read的帮助手册

man 3posix read ==>查找在第三册手册中的关于read的帮助信息

注:下载完整的man帮助文档

sudo apt-get install manpages-posix manpages-posix-dev manpages-dev

 

cat用法:
cat a.txt -n    //-n代表显示行号

cat a.txt -A    //-A代表将不可见字符也列出来,$代表换行

 

cat / more /less

1.作用:显示文本文件内容/分屏显示文件内容

2.用法:

cat file

more file

less more

按q键退出

 

rm(remove)

1.作用:删除指定的文件/目录

2.用法:

rm file   ==>删除文件file

rm dir/ -r ==>递归地删除目录dir/

 

cp(copy)

1.作用:复制指定的文件/目录

2.用法:

cp file1 file2 ==>将file1复制一份,并命名为file2

cp dir1/ dir2/ -r ==>将目录dir1/递归地复制一份,并命名为dir2/

 

mv(move)

1.作用:

将一个指定的文件/目录移动到另一个地方。

给一个文件/目录重命名。

2.用法:

mv file dir/  ==>将文件file移动到dir/中

mv file1 file2 ==>将文件file1,重命名为file2

mv dir1/ dir2/ ==>将目录dir1/,重命名为dir2/ (dir2/当前不存在)

mv dir1/ dir2/ ==>将目录dir1/移动到dir2/中 (dir2/当前已存在)

注:当mv的第二个参数是一个合法的已存在的目录时,那么就是移动,否则就是重命名

 

mkdir:创建目录

rmdir:删除目录(只能删除空目录)

若要删除非空目录,则使用该命令:

rm dir/ -r

 

 

[展开全文]
zhengzhenchao · 12-30 · 0

​​​​​​​按一下tab键自动补齐文件名

按两下tab键它可以将所有匹配的文件、命令、选项全部匹配出来

 

whoami :查看当前登陆用户名

hostname:查看当前主机名

~:家目录

pwd:查看当前家目录

 

编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高

[展开全文]
zhengzhenchao · 12-30 · 0

1.software center-->software sources

-->Download from,选择合适的服务站点

2.执行sudo apt-get update,下载远端服务器的软件列表

3.在联网的情况下,就可以下载安装软件,比如:

sudo apt-get install vim

注:

所有下载的软件包都统一放在:

/var/cache/apt/archives

 

Ubuntu每隔半年发布一个版本
LTS:长期支持版本(5年)

Ubuntu中安装包是以.deb为后缀的,不是和windows一样以.exe为后缀的

[展开全文]
zhengzhenchao · 12-30 · 0

Ubuntu

1.1确保选择桥接方式

1.2配置IP、子网掩码和默认网关:

  sudo vi /etc/network/interfaces

确保该文件中有如下信息:

auto lo

iface lo inet loopback

 

auto eth0  ==>系统启动的时候,自动启动第0块以太网卡eth0

iface eth0 inet static ==>static表示固定IP,改成dhcp就是自动获取IP

address 192.168.1. (座位号+60)

gteway 192.168.1.1 ==>网关地址

netmask 255.255.255.0 ==>子网掩码

 

其中:

auto lo

iface lo inet loopback

设置了系统的回环设备,默认就有的,不要管他

 

1.3配置DNS服务器

sudo vi /etc/resolvconf/resolv.conf.d/base

确保该文件有如下信息:

nameserver 202.96.134.133(华南地区的DNS服务器,用来解析网址的)

 

1.4重启网络服务

sudo /etc/init.d/networking force-reload

//重新加载网络配置文件

sudo /etc/init.d/networking restart

 

1.5重启DNS服务

sudo /etc/init.d/resolvconf restart

 

1.6测试网络是否联通

ping www.baidu.com ==>有延时返回,就表示网络通了

 

一般而言这就可以了,但是如果还不行,尝试如下操作:

1.重新启停以太网卡

sudo ifconfig eth0 down

sudo ifconfig eth0 up

2.添加默认网关

sudo route add default gw 192.168.1.1

3.检查你的网线是否已经插好了!

[展开全文]
zhengzhenchao · 12-30 · 0

Ctrl+Alt+t快起Terminal<命令界面>

 

history>>Shell>查看历史使用命令

alias >>Shell> 为命令取别名

ls     >>Shell>列出

cat   >>Shell>显示

less/more  >>shell>分屏

rm >>>删除

cp>>>拷贝

mv>>>移动

mkdir>>>创建目录

rmdir>>>删除目录

whoami >>>

hostname>>>主机名

pwd>>>

 

 

 

 

[展开全文]
胡昌鹏 · 12-07 · 0
include<iostream>

using spacename 

 

[展开全文]
田耕 · 11-27 · 0
scanf("请你输入:",&m)
while (n != 1){
  printf("这个是:%d",m)
}

 

[展开全文]
田耕 · 11-26 · 0