linux下的UART

linux下的UART,第1张

1.通用串行数据总线,用于异步传输,就是电脑串口之类的

2.硬件层一样,驱动层架构不同,因为 *** 作系统给的接口不同

3.除了必须的模块加载卸载函数外,还有read函数,write函数,ioctl函数,最重要的就是这几个,以方便你以文件方式调用文件读写API

这个问题相当专业了,之前我去周立功那边了解过的。

按照以下步骤进行安装

1) 安装32位的兼容库和libncurses5-dev库

在安装交叉编译工具之前需要先安装32位的兼容库和libncurses5-dev库,安装32兼容库需要从ubuntu的源库中下载,所以需要在Linux主机系统联网的条件下,通过终端使用如下命令安装:

vmuser@Linux-host ~$sudo apt-get install ia32-libs

若Linux主机系统没有安装32位兼容库,在使用交叉编译工具的时候可能会出现错误:

-bash: ./arm-fsl-linux-gnueabi-gcc: 没有那个文件或目录

在终端中使用如下命令则可以安装libncurses5-dev库。

vmuser@Linux-host ~$sudo apt-get install libncurses5-dev

如果没有安装此库,在使用make menucofig时出现如下所示的错误:

*** Unableto find the ncurses libraries or the

*** required headerfiles.

*** 'makemenuconfig' requires the ncurses libraries.

***

Installncurses (ncurses-devel) and try again.

***

make[1]: *** [scripts/kconfig/dochecklxdialog] 错误 1

make: *** [menuconfig] 错误 2

2) 安装交叉编译工具链

将交叉编译工具“gcc-4.4.4-glibc-2.11.1-multilib-1.0_EasyARM-iMX283.tar.bz2”文件通过U盘的方式拷贝到Linux主机的“/tmp”目录下,然后执行如下命令进行解压安装交叉编译工具链:

vmuser@Linux-host ~$ cd /tmp

vmuser@Linux-host ~$ sudo tar -jxvfgcc-4.4.4-glibc-2.11.1-multilib-1.0_EasyARM-iMX283.tar.bz2 -C /opt/

vmuser@Linux-host /tmp$ # 输入vmuser用户的密码“vmuser”

执行完解压命令后,交叉编译工具链将被安装到“/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0”目录下。交叉编译器的具体目录是“/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin”,为了方便使用,还需将该路径添加到PATH环境变量中,其方法为:修改“/etc/profile”文件,具体 *** 作方法如下:

在终端中输入如下指令

vmuser@Linux-host ~$ sudo vi /etc/profile # 若提示输入密码,则输入“vmuser”

用vi编辑器打开“/etc/profile”文件后,在文件末尾增加如下一行内容:

export PATH=$PATH:/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin

文件修改并保存后,再在终端中输入如下指令,更新环境变量,使设置生效。

vmuser@Linux-host ~$source /etc/profile

在终端输入arm-fsl-linux-gnueabi-并按TAB键,如果能够看到很多arm-fsl-linux-gnueabi-前缀的命令,则基本可以确定交叉编译器安装正确,如下图所示。

你用的是什么板子啊?

这个要改uboot的。

比如,如果用的是s3c2410,改一下include/configs/smdk2410.h

将第63行,#define CONFIG_SERIAL1          1 /* we use SERIAL 1 on SMDK2410 */

的CONFIG_SERIAL2,就行了。

可以看一下cpu/arm920t/s3c24x0/serial.c 就能理解了。

#ifdef CONFIG_SERIAL1

#define UART_NR S3C24X0_UART0

#elif defined(CONFIG_SERIAL2)

# if defined(CONFIG_TRAB)

#  error "TRAB supports only CONFIG_SERIAL1"

# endif

#define UART_NR S3C24X0_UART1

#elif defined(CONFIG_SERIAL3)

# if defined(CONFIG_TRAB)

#  #error "TRAB supports only CONFIG_SERIAL1"

# endif

#define UART_NR S3C24X0_UART2

#else

#error "Bad: you didn't configure serial ..."

#endif


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7403513.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-05
下一篇2023-04-05

发表评论

登录后才能评论

评论列表(0条)

    保存