Ubuntu9.10制作ARM交叉编译器

发布者:创新脑细胞最新更新时间:2016-06-20 来源: eefocus关键字:Ubuntu9.10  ARM  交叉编译器 手机看文章 扫描二维码
随时随地手机看文章
本环境内核版本:Linux ubuntu910 2.6.31-21-generic #59-Ubuntu SMP  i686 GNU/Linux

 

准备软件包如下:

bison_13a2.3.dfsg-4build1_i386.deb

build-essential_11.4_i386.deb

flex_2.5.33-10build1_i386.deb

libncurses5-dev_5.6+20071124-1ubuntu2_i386.deb

m4_1.4.8-1build1_i386.deb

patch_2.5.9-5_i386.deb

gcc-3.4.5.tar.gz

glibc-2.3.6.tar.gz 

linux-2.6.26.5.tar.gz

crosstool-0.43.tar.gz

binutils-2.15.tar.gz 

glibc-linuxthreads-2.3.3.tar.gz

linux-libc-headers-2.6.12.0.tar.bz2

 

 

furtherchan@ubuntu910:~/Downloads$ sudo dpkg -i m4_1.4.8-1build1_i386.deb

[sudo] password for furtherchan:

Selecting previously deselected package m4.

(Reading database ... 191676 files and directories currently installed.)

Unpacking m4 (from m4_1.4.8-1build1_i386.deb) ...

Setting up m4 (1.4.8-1build1) ...

Ignoring install-info called from maintainer script

The package m4 should be rebuild with new debhelper to get trigger support

 

Processing triggers for install-info ...

Processing triggers for man-db ...

furtherchan@ubuntu910:~/Downloads$ sudo dpkg -i bison_13a2.3.dfsg-4build1_i386.deb

Selecting previously deselected package bison.

(Reading database ... 191725 files and directories currently installed.)

Unpacking bison (from bison_13a2.3.dfsg-4build1_i386.deb) ...

Setting up bison (1:2.3.dfsg-4build1) ...

update-alternatives: using /usr/bin/bison.yacc to provide /usr/bin/yacc (yacc) in auto mode.

 

Processing triggers for man-db ...

furtherchan@ubuntu910:~/Downloads$ sudo dpkg -i build-essential_11.4_i386.deb

(Reading database ... 191752 files and directories currently installed.)

Preparing to replace build-essential 11.4 (using build-essential_11.4_i386.deb) ...

Unpacking replacement build-essential ...

Setting up build-essential (11.4) ...

furtherchan@ubuntu910:~/Downloads$ sudo dpkg -i flex_2.5.33-10build1_i386.deb

Selecting previously deselected package flex.

(Reading database ... 191752 files and directories currently installed.)

Unpacking flex (from flex_2.5.33-10build1_i386.deb) ...

Setting up flex (2.5.33-10build1) ...

Ignoring install-info called from maintainer script

The package flex should be rebuild with new debhelper to get trigger support

Ignoring install-info called from maintainer script

The package flex should be rebuild with new debhelper to get trigger support

 

Processing triggers for install-info ...

Processing triggers for man-db ...

^[[Afurtherchan@ubuntu910:~/Downloads$ sudo dpkg -i patch_2.5.9-5_i386.deb

(Reading database ... 191775 files and directories currently installed.)

Preparing to replace patch 2.5.9-5 (using patch_2.5.9-5_i386.deb) ...

Unpacking replacement patch ...

Setting up patch (2.5.9-5) ...

Processing triggers for man-db ...

furtherchan@ubuntu910:~/Downloads$sudo dpkg –i libncurses5-dev_5.6+20071124-1ubuntu2_i386.deb

Selecting previously deselected package libncurses5-dev.

(Reading database ... 191775 files and directories currently installed.)

Unpacking libncurses5-dev (from libncurses5-dev_5.6+20071124-1ubuntu2_i386.deb) ...

dpkg: dependency problems prevent configuration of libncurses5-dev:

libncurses5-dev depends on libncurses5 (= 5.6+20071124-1ubuntu2); however:

Version of libncurses5 on system is 5.7+20090803-2ubuntu2.      

 #注释:出错,libncurses5在9.10上是5.7+20090803-2ubuntu2,不影响下面,暂且跳过

dpkg: error processing libncurses5-dev (--install):

dependency problems - leaving unconfigured

Processing triggers for man-db ...

Errors were encountered while processing:

libncurses5-dev

furtherchan@ubuntu910:~/Downloads$

 

 

 

furtherchan@ubuntu910:~/Downloads$ sudo dpkg -i gcc-4.1_4.1.2-23ubuntu3_i386.deb

(Reading database ... 192865 files and directories currently installed.)

Preparing to replace gcc-4.1 4.1.2-23ubuntu3 (using gcc-4.1_4.1.2-23ubuntu3_i386.deb) ...

Unpacking replacement gcc-4.1 ...

Setting up gcc-4.1 (4.1.2-23ubuntu3) ...

Processing triggers for man-db ...

furtherchan@ubuntu910:~/Downloads$ sudo dpkg -i gcc-4.1-base_4.1.2-23ubuntu3_i386.deb

(Reading database ... 192865 files and directories currently installed.)

Preparing to replace gcc-4.1-base 4.1.2-23ubuntu3 (using gcc-4.1-base_4.1.2-23ubuntu3_i386.deb) ...

Unpacking replacement gcc-4.1-base ...

Setting up gcc-4.1-base (4.1.2-23ubuntu3) ...

 

furtherchan@ubuntu910:~/Downloads$ sudo dpkg -i cpp-4.1_4.1.2-23ubuntu3_i386.deb

(Reading database ... 192865 files and directories currently installed.)

Preparing to replace cpp-4.1 4.1.2-23ubuntu3 (using cpp-4.1_4.1.2-23ubuntu3_i386.deb) ...

Unpacking replacement cpp-4.1 ...

Setting up cpp-4.1 (4.1.2-23ubuntu3) ...

Processing triggers for man-db ...

furtherchan@ubuntu910:~/Downloads$

 

 

 

furtherchan@ubuntu910:/usr/bin$ ls -l gcc

lrwxrwxrwx 1 root root 7 2009-11-16 21:27 gcc -> gcc-4.4

furtherchan@ubuntu910:/usr/bin$ mv gcc gcc_bck

mv: cannot move `gcc' to `gcc_bck': Permission denied

furtherchan@ubuntu910:/usr/bin$ sudo mv gcc gcc_bck

furtherchan@ubuntu910:/usr/bin$ ls -l gcc_bck

lrwxrwxrwx 1 root root 7 2009-11-16 21:27 gcc_bck -> gcc-4.4

furtherchan@ubuntu910:/usr/bin$ ls -l /usr/bin/gcc-4.1

-rwxr-xr-x 1 root root 198916 2008-10-26 21:12 /usr/bin/gcc-4.1

furtherchan@ubuntu910:/usr/bin$ sudo ln -s /usr/bin/gcc-4.1 /usr/bin/gcc

#注释: 修改gcc链接,链接至4.1版本

furtherchan@ubuntu910:/usr/bin$ ls -l gcc

lrwxrwxrwx 1 root root 16 2010-05-19 14:57 gcc -> /usr/bin/gcc-4.1

furtherchan@ubuntu910:/usr/bin$

 

 

 

 

furtherchan@ubuntu910:/usr/bin$ ls -la /bin/sh

lrwxrwxrwx 1 root root 4 2009-11-16 21:27 /bin/sh -> dash

furtherchan@ubuntu910:/usr/bin$ sudo dpkg-reconfigure dash

#注释:在配置界面上选择NO删除dash

Removing `diversion of /bin/sh to /bin/sh.distrib by dash'

Removing `diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by dash'

furtherchan@ubuntu910:/usr/bin$

 

 

 

furtherchan@ubuntu910:~/Downloads$ tar -zxvf crosstool-0.43.tar.gz

furtherchan@ubuntu910:~/Downloads$ cd crosstool-0.43/

 

furtherchan@ubuntu910:~/Downloads/crosstool-0.43$ gedit demo-arm-softfloat.sh

 

# 注释:修改路径

#  set -ex

#  TARBALLS_DIR=/home/furtherchan/Downloads

#  RESULT_TOP=/home/furtherchan/Crosstool

 

furtherchan@ubuntu910:~/Downloads/crosstool-0.43$ gedit gcc-3.4.5-glibc-2.3.6.dat

 

# 注释:修改名称

# BINUTILS_DIR=binutils-2.15

# GCC_DIR=gcc-3.4.5

# GLIBC_DIR=glibc-2.3.6

# LINUX_DIR=linux-2.6.26.5

# LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0

# GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.6

 

 

 

furtherchan@ubuntu910:~/Downloads/crosstool-0.43$ ./demo-arm-softfloat.sh

 

# 注释:执行2分钟左右出错,报too old ld,ld版本不对,查看版本:

 

furtherchan@ubuntu910:~/Downloads/crosstool-0.43$ ld -v

GNU ld (GNU Binutils for Ubuntu) 2.20

 

# 注释:

# 解决:解压glibc-2.3.6.tar.bz2,修改glibc-2.3.6下的configure,修改完重新打包压缩成tar.bz2

#####################################################################

  # Found it, now check the version.

  echo "$as_me:$LINENO: checking version of $AS" >&5

echo $ECHO_N "checking version of $AS... $ECHO_C" >&6

  ac_prog_version=`$AS -v &1 | sed -n 's/^.*GNU assembler.* /([0-9]*/.[0-9.]*/).*$//1/p'`

  case $ac_prog_version in

    '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;

    2.2[0-9]*) <--------------line: 3920, 修改版本范围,还有下一处

       ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;

    *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;

 

  # Found it, now check the version.

  echo "$as_me:$LINENO: checking version of $LD" >&5

echo $ECHO_N "checking version of $LD... $ECHO_C" >&6

  ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU ld.* /([0-9][0-9]*/.[0-9.]*/).*$//1/p'`

  case $ac_prog_version in

    '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;

    2.2[0-9]*) <--------------line: 3981, 修改版本范围

       ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;

*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;

 

重新运行./demo-arm-softfloat.sh

######################################################################

 

# 注释:以下省略N行

…….

…….

…….

+ test -f '/home/furtherchan/Crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/arm-softfloat-linux-gnu/lib/libmudflap.so.?'

+ for DIR in '$PREFIX/$TARGET/lib' '$PREFIX/$TARGET/lib64'

+ test -f /home/furtherchan/Crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/arm-softfloat-linux-gnu/lib64/libmudflap.so

+ test -f '/home/furtherchan/Crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/arm-softfloat-linux-gnu/lib64/libmudflap.so.?'

+ cd /home/furtherchan/Downloads/crosstool-0.43

+ gcc fix-embedded-paths.c -o /home/furtherchan/Crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin/fix-embedded-paths

fix-embedded-paths.c: In function ‘testit’:

fix-embedded-paths.c:368: warning: initializer element is not constant

fix-embedded-paths.c:368: warning: (near initialization for ‘all_tests[2]’)

+ echo Cross-toolchain build complete. Result in /home/furtherchan/Crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu.

Cross-toolchain build complete. Result in /home/furtherchan/Crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu.

+ exit 0

+ cd /home/furtherchan/Downloads/crosstool-0.43

+ sh testhello.sh

+ cd /home/furtherchan/Crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu

+ test '!' -d tmp

+ mkdir tmp

+ cd tmp

+ test x '!=' x

+ cat

+ /home/furtherchan/Crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-gcc -static hello.c -o arm-softfloat-linux-gnu-hello-static

+ /home/furtherchan/Crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-gcc hello.c -o arm-softfloat-linux-gnu-hello

+ test -x /home/furtherchan/Crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-g++

+ cat

+ /home/furtherchan/Crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-g++ -static hello2.cc -o arm-softfloat-linux-gnu-hello2-static

+ /home/furtherchan/Crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-g++ hello2.cc -o arm-softfloat-linux-gnu-hello2

+ echo testhello: C compiler can in fact build a trivial program.

testhello: C compiler can in fact build a trivial program.

+ test '' = 1

+ test '' = 1

+ test '' = 1

+ test 1 = ''

+ echo Done.

Done.

#注释:编译完成

furtherchan@ubuntu910:~/Downloads/crosstool-G9ho

 

#注释:接下来加入环境变量

#修改 /etc/bash.bashrc

export PATH=$PATH:/home/furtherchan/Crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin:

 

furtherchan@ubuntu910:~/Crosstool$ ls

gcc-3.4.5-glibc-2.3.6  gcc-3.4.5-glibc-2.3.6.tar.bz2

furtherchan@ubuntu910:~/Crosstool$ cd gcc-3.4.5-glibc-2.3.6/

furtherchan@ubuntu910:~/Crosstool/gcc-3.4.5-glibc-2.3.6$ ls

arm-softfloat-linux-gnu

furtherchan@ubuntu910:~/Crosstool/gcc-3.4.5-glibc-2.3.6$ cd arm-softfloat-linux-gnu/

furtherchan@ubuntu910:~/Crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu$ ls

arm-softfloat-linux-gnu                      bin          include  lib      man

arm-softfloat-linux-gnu.crosstoolconfig.txt  distributed  info     libexec  tmp

furtherchan@ubuntu910:~/Crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu$ cd bin

furtherchan@ubuntu910:~/Crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin$ ls

arm-softfloat-linux-gnu-addr2line  arm-softfloat-linux-gnu-gprof

arm-softfloat-linux-gnu-ar         arm-softfloat-linux-gnu-ld

arm-softfloat-linux-gnu-as         arm-softfloat-linux-gnu-nm

arm-softfloat-linux-gnu-c++        arm-softfloat-linux-gnu-objcopy

arm-softfloat-linux-gnu-c++filt    arm-softfloat-linux-gnu-objdump

arm-softfloat-linux-gnu-cpp        arm-softfloat-linux-gnu-ranlib

arm-softfloat-linux-gnu-g++        arm-softfloat-linux-gnu-readelf

arm-softfloat-linux-gnu-gcc        arm-softfloat-linux-gnu-size

arm-softfloat-linux-gnu-gcc-3.4.5  arm-softfloat-linux-gnu-strings

arm-softfloat-linux-gnu-gccbug     arm-softfloat-linux-gnu-strip

arm-softfloat-linux-gnu-gcov       fix-embedded-paths

furtherchan@ubuntu910:~/Crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin$

 

 

furtherchan@ubuntu910:~/c/test$ arm-softfloat-linux-gnu-gcc -v

Reading specs from /home/furtherchan/Crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/lib/gcc/arm-softfloat-linux-gnu/3.4.5/specs

Configured with: /home/furtherchan/Downloads/crosstool-0.43/build/arm-softfloat-linux-gnu/gcc-3.4.5-glibc-2.3.6/gcc-3.4.5/configure --target=arm-softfloat-linux-gnu --host=i686-host_pc-linux-gnu --prefix=/home/furtherchan/Crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu --with-float=soft --with-headers=/home/furtherchan/Crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/arm-softfloat-linux-gnu/include --with-local-prefix=/home/furtherchan/Crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/arm-softfloat-linux-gnu --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long

Thread model: posix

gcc version 3.4.5

furtherchan@ubuntu910:~/c/test$

 

 

furtherchan@ubuntu910:~/c/test$ arm-softfloat-linux-gnu-gcc -o test test.c

furtherchan@ubuntu910:~/c/test$ file test

test: ELF 32-bit LSB executable, ARM, version 1, dynamically linked (uses shared libs), for GNU/Linux 2.4.3, not stripped

#注释:文件格式已是ARM

furtherchan@ubuntu910:~/c/test$

关键字:Ubuntu9.10  ARM  交叉编译器 引用地址:Ubuntu9.10制作ARM交叉编译器

上一篇:arm linux上建立nfs文件系统
下一篇:ARM Linux中断机制分析

推荐阅读最新更新时间:2024-03-16 14:57

ARM和WinCE6.0下nRF24L01的驱动设计
引言 nRF24L01是一款工作在2.4~2.5 GHz世界通用ISM频段的单片无线收发器芯片。它在无线数据通讯、无线门禁、遥感勘测、工业传感器和玩具中都有应用。 随着测控技术的发展,nRF24L01与单片机组成的系统进行无线测控的实例已经有很多,如基于nRF24L01的无线温度监测系统、基于nRF24 L01的近距离无线数据传输系统等等。近年来,随着ARM和嵌入式WinCE系统的迅速发展,由于在WinCE系统下nRF24L01和ARM的通信缺乏驱动,致使两者之间不能直接通信,一般的解决方法是借助于第三方单片机的串行口来进行两者的通信。这种方式的不足之处在于,由于要借助于第三方单片机,使得成本增加且通信速度下降。nRF24
[电源管理]
<font color='red'>ARM</font>和WinCE6.0下nRF24L01的驱动设计
μC/OS-Ⅱ在ARM系列单片机S3C44B0x上的移植
目前,嵌入式系统在工业控制、家用电器、移动通信、PDA等各种领域得到了越来越广泛的应用。由于用户对嵌入式产品的性能要求越来越高,程序设计也变得越来越复杂,这就需要一个通用的嵌入式实时操作系统来对其进行管理和控制。对移植了操作系统的嵌入式系统进行设计和开发,可以大大减小程序员的负担,对于不同的应用可以按照相同的步骤来完成系统的设计。 C/OS-Ⅱ是一种简单高效、源代码公开的嵌入式实时操作系统,具有良好的可扩展性和可移植性,被广泛的应用到各种嵌人式处理器上。 COS-Ⅱ操作系统拥有可固化,可裁剪,可剥夺性的实时内核,可同时管理64个系统任务。利用移植 COS-Ⅱ操作系统的嵌入式微处理器来设计和开发产品,对于提高产品的性能,减少产品的
[单片机]
μC/OS-Ⅱ在<font color='red'>ARM</font>系列单片机S3C44B0x上的移植
ARM学习笔记6——程序状态寄存器访问指令
  这两条指令结合,可用于对CPSR或SPSR进行读/写操作。 当需要保存或修改当前模式下CPSR或SPSR的内容时,首先必须将这些内容传递到通用寄存器中 1、MRS指令(Move to Register from Status Register)   1.1、作用     它将程序状态寄存器内容传输到通用寄存器   1.2、语法格式     MRS{ condition } Rd ,CPSR     MRS{ condition } Rd ,SPSR   1.3、参数说明      Rd :确定指令的目标寄存器,如果R15被用作目标寄存器,指令的执行结果不可预知,因为每执行一个指令,PC都会改变。   1.4、使用场合   
[单片机]
基于ARM7处理器LPC2119的USB-CAN转换器设计
引言     控制器局域网(controller area network,CAN)是20世纪80年代德国BOSCH公司为现代汽车应用而推出的一种多主机局部网,由于CAN总线具有可靠性高、功能完善、成本合理、实时性等优点,CAN总线早已不再局限于汽车行业,而被广泛应用于各个自动化控制系统中,例如汽车电子、工业控制、智能大厦、安防监控、环境控制等。目前CAN总线是国际上应用最广泛的现场总线之一。通用串行总线(universalserial bus,USB)作为一种协议规范,是以Intel为首的7家计算机及通信产业厂商公司于1994年11月共同提出,其除具有使用方便(即插即用)、功耗低、数据传输率高等优点外,还具有软硬件支持广泛、功耗
[嵌入式]
ARM指令adr adrl ldr mov是什么,ldr和adr区别在哪里?
ARM指令:什么是adr adrl ldr mov? ADR是一条小范围的地址读取伪指令,它将基于PC的相对偏移的地址值读到目标寄存器中。格式:ADR register,exper。 编译源程序时,汇编器首先计算当前PC值(当前指令位置)到exper的距离,然后用一条ADD或者SUB指令替换这条伪指令, 例如:ADD register,PC,#offset_to_exper。 注意,标号exper与指令必须在同一代码段。 比如:adr r0, _start ://将指定地址赋到r0中 …… _start: b _start r0的值为标号_start与此指令的距离差 + PC值
[单片机]
ARM Linux内核驱动异常定位方法分析反汇编方式
最近在搞Atmel 的SAM9x25平台,Linux系统,用于工业设备。这也是我首次参与工业设备的研发。在调试Atmel SAM9x25的Linux串口设备的时候,发现无论是读还是写,都会产生异常。相关的异常信息如下: ================================================================================================================== Unable to handle kernel NULL pointer dereference at virtual address 00000000 pgd = c0004000 *
[单片机]
ARM发掘MCU市场 供应商寻求差异化出路
根据笔者的统计资料,包括飞思卡尔,Atmel,TI,ST,富士通,NXP,英飞凌,等MCU大厂不分先后投入到ARM阵营中。同时,由于ARM降低了企业门槛,也给了Holtek,安森美,silicon labs,Energy micro等众多MCU研发实力相对较弱或无法投入大量人力成本研发新内核及构建生态系统的MCU厂商更多的机会。 根据ARM的官方表述:“2000年,开始发掘MCU市场机会;2004年,发布首款Cortex-M产品;2006年,收购领先的工具公司KEIL;2009年,引入软件开发项目;2011年,MCU市场份额从07年的3%涨到15%,出货量达到11亿。” 而广州周立功单片机发展有限公司创始人,有着MCU大师之称
[单片机]
基于ARM-Linux和GPRS技术的家庭智能控制终端设计
1 引言 随着网络技术和通信技术的不断发展,人们希望即使在工作或外出时也能通过某种方式及时了解和控制家中的情况,同时伴随着数字化家庭的普及,实现智能家居的远程控制已经成为一种趋势。家庭智能控制系统通过家庭总线技术,把家庭中各种家用电器、家庭保安装置和各种计量设备连接到一起组成一个家庭内部网络,由家庭智能控制器进行统一管理 。远程控制就是通过某种通讯方式将智能家庭控制器与外界相连,使人们能够在本地或异地对家庭系统进行集中的监视、控制。本文中介绍的方案,结合了GPRS(General Packet Radio Service)技术永远在线,速度快,接入范围广,体积小,功耗低等优点 ,采用RS485工业总线,设计实现了一种基于嵌入式
[单片机]
基于<font color='red'>ARM</font>-Linux和GPRS技术的家庭智能控制终端设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved