当前位置:  建站>运营/SEO
本页文章导读:
    ▪STM32F10x 学习笔记8(USART实现串口通讯 DMA 方式)      STM32F10x 的USART 支持DMA 方式,并且在DMA完成后可以产生中断。这对于需要接收或发送大量数据的应用情景是很有帮助的。 在普通的8位或16位单片机中很少有包含DMA控制器的,所以.........
    ▪HP-UX查看版本       首先采用uname -a查看服务器类型 $ uname -a    HP-UX WEBDB1 B.11.31 U ia64 0749665296 unlimited-user license   服务器的为HP-UX 服务的名字:WEBDB1 服务器的版本:B.11.31 $&nb.........
    ▪不重新编译PHP文件的情况下php GD库扩展库的编译安装(centos)      gd-2.0.33.tar.gz http://www.boutell.com/gd/ jpegsrc.v6b.tar.gz http://www.ijg.org/ libpng-1.2.7.tar.tar http://sourceforge.net/projects/libpng/ zlib-1.2.2.tar.gz http://sourceforge.net/projects/zlib/ freetype-2.1.9.tar.gzhttp://sourceforge.net/projects.........

[1]STM32F10x 学习笔记8(USART实现串口通讯 DMA 方式)
    来源: 互联网  发布时间: 2013-10-31

STM32F10x 的USART 支持DMA 方式,并且在DMA完成后可以产生中断。这对于需要接收或发送大量数据的应用情景是很有帮助的。

在普通的8位或16位单片机中很少有包含DMA控制器的,所以可能许多嵌入式程序员对DMA方式并不熟悉。简单的说,直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。由于无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。

STM32F10x 上具有两个DMA控制器,共有12个通道(DMA1有7个通道,DMA2有5个通道),每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。还有一个仲裁器来协调各个DMA请求的优先权。

按照STM32参考手册上的说法:“DMA控制器和Cortex™-M3核心共享系统数据总线,执行直接存储器数据传输。当CPU和DMA同时访问相同的目标(RAM或外设)时,DMA请求会暂停CPU访问系统总线达若干个周期,总线仲裁器执行循环调度,以保证CPU至少可以得到一半的系统总线(存储器或外设)带宽。”所以我们不必担心DMA控制器霸占总线资源。CPU总是可以得到一般的总线时间的。

下面我们以USART2 的数据发送为例来介绍DMA。首先由STM32 参考手册的图22可知。USART2 的发送功能可以使用DMA1 的第7 个通道。

利用的DMA 传输的设置工作大体可以分为6步:

1. 在DMA1_CPAR7寄存器中设置外设寄存器的地址。发生外设数据传输请求时,这个地址将是数据传输的源或目标。 

2. 在DMA1_CMAR7寄存器中设置数据存储器的地址。发生外设数据传输请求时,传输的数据将从这个地址读出或写入这个地址。 

3. 在DMA1_CNDTR7寄存器中设置要传输的数据量。在每个数据传输后,这个数值递减。 

4. 在DMA1_CCR7寄存器的PL[1:0]位中设置通道的优先级。 

5. 在DMA1_CCR7寄存器中设置数据传输的方向、循环模式、外设和存储器的增量模式、外设和存储器的数据宽度、传输一半产生中断或传输完成产生中断。 

6. 设置DMA1_CCR7寄存器的ENABLE位,启动该通道。 

第1步对应的代码为:

DMA1_Channel7->CPAR = (uint32_t) &(USART2->DR);

第2步对应的代码如下,其中p_str 是一个指针,指向要传输的数据的首地址:

DMA1_Channel7->CMAR = (uint32_t) p_str;
第3步对应的代码如下,cnt 为要传输的数据量,串口数据是以字节为传输单位的,所以这里cnt就是要传输数据的字节数。

DMA1_Channel7->CNDTR = cnt;
第4步对应的代码如下,DMA 通道的优先级分为4级,分别是:DMA_Priority_VeryHigh、DMA_Priority_High、DMA_Priority_Medium、DMA_Priority_Low。这里设为最低。

DMA1_Channel7->CCR |= DMA_Priority_Low;
第5步对应的代码如下:

DMA1_Channel7->CCR |= DMA_DIR_PeripheralDST | 
DMA_Mode_Normal | 
DMA_PeripheralInc_Disable |
DMA_MemoryInc_Enable |
DMA_PeripheralDataSize_Byte |
DMA_MemoryDataSize_Byte | 
DMA_M2M_Disable;
第6步对应的代码如下:

DMA1_Channel7->CCR |= DMA_CCR1_EN;

实际上在这

    
[2]HP-UX查看版本
    来源: 互联网  发布时间: 2013-10-31

首先采用uname -a查看服务器类型

$ uname -a
   HP-UX WEBDB1 B.11.31 U ia64 0749665296 unlimited-user license

 

服务器的为HP-UX

服务的名字:WEBDB1

服务器的版本:B.11.31



$ machinfo
CPU info: #CPU信息
  4 Intel(R) Itanium 2 9100 series processors (1.59 GHz, 18 MB)  #4个CPU
          532 MT/s bus, CPU version A1
          8 logical processors (2 per socket)   #8个处理器,4个CPU,表示双核

Memory: 32737 MB (31.97 GB)           #表示物理内存的大小

Firmware info:          #固件信息
   Firmware revision:  04.21
   FP SWA driver revision: 1.18
   IPMI is supported on this system.
   BMC firmware revision: 5.38

Platform info:                       #平台信息
   Model:                  "ia64 hp server BL870c"                # 服务器为ia64的hp 型号为BL870c惠普c级刀片服务器
   Machine ID number:      2caefc10-70d8-11df-b289-35a8ab4110df  #服务器的编号
   Machine serial number:  SGH50171B9   # 服务器的序列号

OS info:                           #系统信息 
   Nodename:  WEBDB1          #节点名称,服务器名称
   Release:   HP-UX B.11.31      #发布版本
   Version:   U (unlimited-user license)
   Machine:   ia64                   #操作系统型号
   ID Number: 0749665296 
   vmunix _release_version:               
@(#) $Revision: vmunix:    B.11.31_LR FLAVOR=perf

 

以上为machinfo命令为我们提供个主要信息。

在SUSE中查看系统的版本使用:

lsb_release

作者:forgetbook 发表于2013-6-17 14:22:22 原文链接
阅读:20 评论:0 查看评论

    
[3]不重新编译PHP文件的情况下php GD库扩展库的编译安装(centos)
    来源: 互联网  发布时间: 2013-10-31
gd-2.0.33.tar.gz http://www.boutell.com/gd/
jpegsrc.v6b.tar.gz http://www.ijg.org/
libpng-1.2.7.tar.tar http://sourceforge.net/projects/libpng/
zlib-1.2.2.tar.gz http://sourceforge.net/projects/zlib/

freetype-2.1.9.tar.gzhttp://sourceforge.net/projects/freetype/

1、安装 zlib 
wget ftp://ftp.sunfreeware.com/pub/freeware/SOURCES/zlib-1.2.3.tar.gz 
tar -zxf zlib-1.2.3.tar.gz 
cd zlib-1.2.3 
./configure --prefix=/usr/local/zlib 
make 
make install 
 
2、安装 jpeg 
wget ftp://ftp.sunfreeware.com/pub/freeware/SOURCES/jpeg.tar.gz
安装前先创建jpeg安装文件所需(如下)目录,防止提示类似“无法创建一般文件‘/usr/local/jpeg/***’: 没有那个文件或目录" 的错误
mkdir /usr/local/jpeg
mkdir  /usr/local/jpeg/bin 
mkdir  /usr/local/jpeg/lib 
mkdir  /usr/local/jpeg/include 
mkdir  /usr/local/jpeg/man 
mkdir  /usr/local/jpeg/man1 
mkdir  /usr/local/jpeg/man/man1 
tar -zxf jpeg.tar.gz 
cd jpeg-6b 
./configure --prefix=/usr/local/jpeg --enable-shared --enable-static 
make 
make install 
 
安装完成提示: 
Libraries have been installed in: 
/usr/local/jpeg6/lib

3、安装 libpng 

wget ftp://ftp.sunfreeware.com/pub/freeware/SOURCES/libpng-1.2.16.tar.gz 
tar -zxf libpng-1.2.16.tar.gz 
cd libpng-1.2.16 
./configure --prefix=/usr/local/libpng 
make 
make install

4、安装 freetype 
wget http://download.savannah.nongnu.org/releases/freetype/freetype-2.3.4.tar.gz 
tar -zxf freetype-2.3.4.tar.gz 
cd freetype-2.3.4 
mkdir -p /usr/local/freetype 
./configure --prefix=/usr/local/freetype 
make 
make install

5、安装 GD 
wget ftp://ftp.sunfreeware.com/pub/freeware/SOURCES/gd-2.0.33.tar.gz 
tar -zxf gd-2.0.33.tar.gz 
cd gd-2.0.33 
mkdir -p /usr/local/gd2
./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg/ --with-png=/usr/local/libpng/ --with-zlib=/usr/local/zlib/ --with-freetype=/usr/local/freetype/
make 
make install
(如果出错见下文)
6、集成PHP GD扩展 到PHP里
切换到PHP源码包
如果已经安装php,建议通过追加编译安装

进入“[php解压目录]/ext/gd”目录,执行如下命令: 
[php安装目录]/bin/phpize 
Java代码  
./configure --with-php-config=[php安装目录]/bin/php-config --with-jpeg=[jpeg-6b安装目录] --with-png=[libpng安装目录] --with-freetype=[freetype安装目录] --with-zlib=[zlib安装目录] --with-gd=[gd安装目录] 
(如果出现未知配置项--with-png**,--with-freetype之类的错误 在配置项后面加上-dir参数即可:既修编译参数为: ./configure --with-php-config=[php安装目录]/bin/php-config --with-jpeg-dir=[jpeg安装目录] --with-png-dir=[libpng安装目录] --with-freetype-dir=[freetype安装目录] --with-zlib=[zlib安装目录] --with-gd=[gd安装目录] 即可
)
make  
make install  
 
安装成功后会在“[php安装目录]/lib/php/extensions/no-debug-non-zts-20060613”目录下生成gd.so文件, 
   然后cp [php安装目录]/lib/php/extensions/no-debug-non-zts-20060613/gd.so /opt/php/ext 
 
修改php.ini文件加载gd组件,添加extension_dir=/opt/php/ext和extension=gd.so,如果有extension_dir=/opt/php/ext则不需要增加 
Java代码  
extension_dir=/opt/php/ext  
extension=gd.so 


./configure --with-php-config=/usr/local/php/bin/php-config --with-jpeg-dir=/usr/local/jpeg --with-png-dir=/usr/local/libpng --with-freetype-dir=/usr/local/freetype --with-zlib-dir=/usr/local/zlib --with-gd=/usr/local/gd2

执行编译安装
make 
make install
具体操作流程如下:
$ cd <php源码>/ext/gd
$ /usr/local/php5/bin/phpize
$ ./configure --with-gd=/usr/local/gd --with-jpeg-dir=/usr/local/jpeg --with-png-dir=/usr/local/libpng --with-freetype-dir=/usr/local/freetype --with-zlib-dir=/usr/local/zlib --with-php-config=/usr/local/php/bin/php-config
$ make && make install
 修改php.ini
$ make && make install
添加extension=gd.so
 最后,重启apache


可能出现的错误以及解决方法:

编译GD库时如果出现以下错误:

 
在./configure GD库,安装时出现了一个问题,下面是报错信息
gd_png.c:16:53: error: png.h: No such file or directory
gd_png.c:47: error: expected specifier-qualifier-list before ‘jmp_buf’
gd_png.c:54: error: expected ‘)’ before ‘png_ptr’
gd_png.c:82: error: expected ‘)’ before ‘png_ptr’
gd_png.c:92: error: expected ‘)’ before ‘png_ptr’
gd_png.c:98: error: expected ‘)’ before ‘png_ptr’
gd_png.c: In function ‘gdImageCreateFromPngCtx’:
gd_png.c:125: error: ‘png_byte’ undeclared (first use in this function)
gd_png.c:125: error: (Each undeclared identifier is reported only once
gd_png.c:125: error: for each function it appears in.)
gd_png.c:125: error: expected ‘;’ before ‘sig’
gd_png.c:126: error: ‘png_structp’ undeclared (first use in this function)
gd_png.c:126: error: expected ‘;’ before ‘png_ptr’
gd_png.c:127: error: ‘png_infop’ undeclared (first use in this function)
gd_png.c:127: error: expected ‘;’ before ‘info_ptr’
gd_png.c:128: error: ‘png_uint_32′ undeclared (first use in this function)
gd_png.c:128: error: expected ‘;’ before ‘width’
gd_png.c:131: error: ‘png_colorp’ undeclared (first use in this function)
gd_png.c:131: error: expected ‘;’ before ‘palette’
gd_png.c:132: error: ‘png_color_16p’ undeclared (first use in this function)
gd_png.c:132: error: expected ‘;’ before ‘trans_gray_rgb’
gd_png.c:133: error: expected ‘;’ before ‘trans_color_rgb’
gd_png.c:134: error: ‘png_bytep’ undeclared (first use in this function)
gd_png.c:134: error: expected ‘;’ before ‘trans’
gd_png.c:135: error: expected ‘;’ before ‘image_data’
gd_png.c:136: error: ‘png_bytepp’ undeclared (first use in this function)
gd_png.c:136: error: expected ‘;’ before ‘row_pointers’
gd_png.c:144: error: ‘sig’ undeclared (first use in this function)
gd_png.c:157: error: ‘png_ptr’ undeclared (first use in this function)
gd_png.c:157: error: ‘PNG_LIBPNG_VER_STRING’ undeclared (first use in this function)
gd_png.c:157: error: ‘gdPngErrorHandler’ undeclared (first use in this function)
gd_png.c:166: error: ‘info_ptr’ undeclared (first use in this function)
gd_png.c:182: error: ‘jmpbuf_wrapper’ has no member named ‘jmpbuf’
gd_png.c:192: error: ‘gdPngReadData’ undeclared (first use in this function)
gd_png.c:195: error: ‘width’ undeclared (first use in this function)
gd_png.c:195: error: ‘height’ undeclared (first use in th      
    
最新技术文章:
 




特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3