1.在windows下使用arm-gcc编译工程开发stm32/gd32
2.php-8.3.3 源码编译安装以及扩展 redis 源码、gd和 sodium安装
3.Rust 嵌入式开发 STM32 & RISC-V
4.软件测试管理神器之zentao(禅道)-Linux环境部署
5.CentOS 6.2编译安装Nginx1.0.14+MySQL5.5.22+PHP5.3.10步骤分享
在windows下使用arm-gcc编译工程开发stm32/gd32
在进行Windows下使用arm-gcc编译工程开发STM/GD的源码操作时,需要准备并配置一些关键的源码工具和资源。首先,源码推荐下载并安装版本为“.2.Rel1”的源码arm-none-eabi工具链,该工具链包含了gcc、源码电影站源码gdb等核心组件。源码安装时,源码确保在安装路径不变的源码前提下,选中“Add path to environment”选项,源码并在Windows环境变量中添加路径以实现gcc工具的源码调用。
其次,源码MinGW-w也是源码重要工具,适用于和位Windows系统。源码下载相应的源码版本,将其解压并放置于C:\Program Files (x)目录下。同时,将mingw-make.exe复制一份,并重命名为make.exe,以便后续使用。
STMCubeMX作为STM初始化代码生成器,对于开发过程具有辅助作用,但并非必需。安装过程中需要注意注册ST账号,完成注册后,可以利用该软件生成工程代码,简化开发工作。然而,如果计划使用标准库,则可选择不安装STMCubeMX。
Visual Studio Code作为代码编辑器,提供了一流的petshop 源码编程体验。虽然它不是编译工具,但在编写和调试代码时不可或缺。确保安装并配置好VSCode,以便进行更高效地编程。
OpenOCD作为连接MCU、下载程序的工具,对于STM/GD开发至关重要。尽管官方提供了源代码,实际使用中通常会从指定的非官方库中下载已编译好的版本。安装时,将其放置于C:\Program Files (x)目录下,并添加至环境变量,确保bin文件夹路径正确配置。
Cortex-debug作为VScode插件,可提供调试功能,虽然非必要,但强烈推荐使用,以提升开发效率和调试体验。
示例工程通常可以通过Git拉取或直接下载获得。在实际操作中,确保正确设置工程目录及路径,以便后续编译和调试。
在编写和理解代码时,关于例程的解释非常重要。例如,标准外设库与HAL库的选择取决于所用芯片,如STMFZG,推荐使用标准外设库以兼容更多芯片系列。若使用标准库,需注意printf重定向方式的差异,即使用_gcc提供的libc 源码_write函数而非重定向fputc函数。
关于Makefile的使用,详细解释见个人笔记和官方文档,重点在于理解gcc编译指令、Make的语法和使用方法。Makefile的正确配置对于自动化编译流程至关重要,确保编译过程顺利无阻。
调试方法中,OpenOCD文件夹内的两个关键配置文件,如stlink-v2-1.cfg和stmf4x.cfg,对于连接MCU和下载程序至关重要。使用VScode中的cortex-debug插件进行调试时,需要正确配置这些文件的路径。若遇到“Info : Unable to match requested speed kHz, using kHz”的错误,可修改stmf4x.cfg文件中的“adapter speed ”为“adapter speed ”以解决。
此外,对于GD的GNU汇编风格启动文件与链接脚本的理解,可以参考其他文章以获得更深入的解释和使用技巧。
php-8.3.3 源码编译安装以及扩展 redis 、gd和 sodium安装
本文主要记录如何安装PHP 8.3.3版本及其扩展,包括Redis、GD、和Sodium。本教程适合寻求实现最新PHP技术的开发者。
首先,使用阿里云购买配置为4c8G的Rocky Linux 9.3机器用于安装。
开始安装前,进行系统版本的确认和软件包的更新。
然后利用源码方式编译安装PHP 8.3.3版本。在此过程中,需先安装必要的依赖包。
接着,slam源码创建www用户用于权限管理。
下载并解压PHP 8.3.3的源码。
运行configure预编译,可能遇到诸如“无法找到ldap.h”或“无法识别ldap库在/usr/lib”等问题,需排查这些依赖问题。
通过访问pkgs.org网站搜索缺失的 oniguruma-devel 包进行安装。注意在搜索到的页面找到oniguruma-devel的安装入口,有时可能需要通过验证。
正确安装依赖后,再次编译,进行make操作。完成编译后,创建php的软链接至系统中。
优化PHP默认配置,并创建php-fpm进程管理脚本。
下一步是安装PHP的扩展。例如,对于Redis、GD和Sodium的扩展。
确保正确安装扩展后,进行验证,确保所有配置都正确实现。
如果希望深入理解安装细节或遇到问题,可以查找更多相关教程或咨询社区成员。
在本教程中,提供了一条基于源码的安装PHP 8.3.3及其扩展的方法,并且避免了一些常见的复杂安装步骤。此方法适合追求高效且全面掌握PHP配置与安装细节的开发者。
Rust 嵌入式开发 STM & RISC-V
在嵌入式领域,Rust 的应用正逐渐受到关注。其官方标语“可靠且高效”以及吉祥物硬壳螃蟹,gg 源码暗示了Rust在安全和嵌入式应用中的潜力。Rust的早期编译器通过代理功能,能够编译出不同指令集的程序,这在后来与LLVM的集成后,使得在嵌入式开发领域更加便捷。LLVM的特性在于提供抽象的IR(中间表示),将源码翻译为IR,再生成不同指令集的程序,效率高且兼容不同平台。通过拥抱LLVM,Rust在嵌入式领域的发展潜力得到进一步释放。
要开始在STM或GD上使用Rust开发,首先需要搭建Rust的开发环境。Rust的官方主页提供了详细的安装指南,整个过程相当简单。值得注意的是,在Windows下安装Rust时,可能会提示需要安装Visual Studio,但实际上,Rust本身已经集成了LLVM,可以直接编译,无需额外的编译器。当然,对于某些Rust组件的安装可能需要自行安装编译器,如cargo-binutils。安装好Rust环境后,重启控制台,应能运行rustup、rustc和cargo。
Rust主要由编译器rustc、软件包管理器cargo、工具链管理器rustup组成。cargo能提供项目创建、编译、运行等便利功能。rustup则负责管理rust的工具链,如编译器、运行环境等,这对于使用Rust进行嵌入式开发尤为重要。通过rustup,用户可以安装所需的运行环境(Runtime)以适应不同指令集架构的设备。
以STMF为例,使用Rust开发时,可以借助ssd crate进行驱动。首先下载源码,定义依赖,然后编译。目标开发板的硬件信息需要在配置文件中指定,以确保正确链接资源。为了适应目标MCU,可能需要预编译的运行环境。编译完成后,使用objcopy生成适用于开发板的bin文件,最后使用st-link或其他工具将bin文件上传到开发板。
在RISC-V平台上进行Rust开发时,同样需要定义运行环境并进行编译。流程与STM类似,但目标是RISC-V架构的开发板,如Longan Naon。这里可能需要使用芯来科技的RISC-V GNU工具链。编译生成的bin文件可以使用dfu-utils工具上传到开发板。
在开发过程中,可能会遇到连接过程使用了arm-gcc和riscv-gcc的问题。为解决此问题,Rust提供了cargo-binutils工具,可以利用LLVM的objcopy生成最终的二进制文件。通过更新或调整配置,使用cargo objcopy生成的bin文件现在可以正常运行,无需额外的gcc工具链。
软件测试管理神器之zentao(禅道)-Linux环境部署
禅道,作为一款国产开源项目管理软件,集产品管理、项目管理、质量管理、文档管理、组织管理和事务管理于一体,专注于研发项目管理,提供全面覆盖研发项目管理的核心流程。其管理思想注重实效,功能完备丰富,操作简洁高效,界面美观大方,搜索功能强大,统计报表丰富多样,软件架构合理,扩展灵活,并具有完善的API可以调用。
在Linux环境下搭建禅道系统,对于测试工程师来说是必备技能。以下是搭建流程,帮助您轻松上手。
一、运行环境说明
推荐环境为 CentOS7 + Apache + PHP(7.0/7.1/7.2版本)+ MySQL(5.5/5.6版本)/mariadb + zantaopms(.4.1/8.9.1)组合。确保PHP运行环境加载了pdo, pdo_mysql, json, filter, openssl, mbstring, zlib, curl, gd, iconv模块。
二、安装Apache服务
包括安装并开启Apache服务,配置Apache运维命令,关闭防火墙和SELINUX,以及验证Apache服务运行状态。使用ifconfig查看IP地址,通过浏览器访问服务器IP地址来确认Apache运行成功。
三、安装PHP7.2版本
更新系统软件包,移除默认的PHP5版本,挂载PHP7的yum源,安装PHP7.2版本及其拓展插件。创建phpinfo文件,测试PHP与Apache服务。
四、安装mariadb数据库
安装并开启mariadb服务,重置数据库root账号密码,验证数据库安装成功。建议在此阶段给虚拟机做个快照备份。
五、安装禅道软件
下载禅道软件源码包,解压并修改Apache访问路径。重启系统和apache服务,开始安装禅道。通过宿主机浏览器访问禅道登录界面。
六、安装ioncube loader扩展插件(专业版)
解决禅道专业版核心代码加密问题,下载并安装ioncube loader扩展,按照安装向导进行配置,重启Apache服务,检查ioncube是否安装成功。再次访问禅道首页,使用注册的用户名和密码登录,完成禅道系统安装。
至此,禅道系统已成功安装,可以正常使用。如需使用docker部署禅道系统,可查阅相关文章。欢迎关注作者,如觉得文章有价值,不妨给个赞同、喜欢、收藏。
CentOS 6.2编译安装Nginx1.0.+MySQL5.5.+PHP5.3.步骤分享
说明:操作系统:CentOS 6.2 位
准备篇:
一、配置好IP、DNS 、网关,确保使用远程连接工具能够连接服务器
二、配置防火墙,开启端口、端口
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT(允许端口通过防火墙)
-A INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT(允许端口通过防火墙)
特别提示:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败,正确的应该是添加到默认的端口这条规则的下面
添加好之后防火墙规则如下所示:
#########################################################
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
#########################################################
/etc/init.d/iptables restart #最后重启防火墙使配置生效
三、关闭SELINUX
vi /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq 保存,关闭
shutdown -r now #重启系统
四 、系统约定
软件源代码包存放位置:/usr/local/src
源码包编译安装位置:/usr/local/软件名字
五、下载软件包
1、下载nginx(目前稳定版)
.php.net/distributions/php-5.3..tar.gz
5、下载cmake(MySQL编译工具)
f /etc/my.cnf #拷贝配置文件(注意:如果/etc目录下面默认有一个my.cnf,直接覆盖即可)
vi /etc/my.cnf #编辑配置文件,在 [mysqld] 部分增加
datadir = /data/mysql #添加MySQL数据库路径
./scripts/mysql_install_db --user=mysql #生成mysql系统数据库
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld #把Mysql加入系统启动
chmod /etc/init.d/mysqld #增加执行权限
chkconfig mysqld on #加入开机启动
vi /etc/rc.d/init.d/mysqld #编辑
basedir = /usr/local/mysql #MySQL程序安装路径
datadir = /data/mysql #MySQl数据库存放目录
service mysqld start #启动
vi /etc/profile #把mysql服务加入系统环境变量:在最后添加下面这一行
export PATH=$PATH:/usr/local/mysql/bin
下面这两行把myslq的库文件链接到系统默认的位置,这样你在编译类似PHP等软件时可以不用指定mysql的库文件地址。
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s /usr/local/mysql/include/mysql /usr/include/mysql
shutdown -r now #需要重启系统,等待系统重新启动之后继续在终端命令行下面操作
mysql_secure_installation #设置Mysql密码
根据提示按Y 回车输入2次密码
或者直接修改密码/usr/local/mysql/bin/mysqladmin -u root -p password "" #修改密码
service mysqld restart #重启
到此,mysql安装完成!
五、安装 nginx
groupadd www #添加www组
useradd -g www www -s /bin/false #创建nginx运行账户www并加入到www组,不允许www用户直接登录系统cd /usr/local/src
tar zxvf nginx-1.0..tar.gz
cd nginx-1.0.
./configure --prefix=/usr/local/nginx --user=www --group=www --with-tl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl #配置
make #编译
make install #安装
cp php.ini-production /usr/local/php5/etc/php.ini #复制php配置文件到安装目录
rm -rf /etc/php.ini #删除系统自带配置文件
ln -s /usr/local/php5/etc/php.ini /etc/php.ini #添加软链接
cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件
vi /usr/local/php5/etc/php-fpm.conf #编辑
user = www #设置php-fpm运行账号为www
group = www #设置php-fpm运行组为www
pid = run/php-fpm.pid #取消前面的分号
设置 php-fpm开机启动
cp /usr/local/src/php-5.3./sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm #拷贝php-fpm到启动目录
chmod +x /etc/rc.d/init.d/php-fpm #添加执行权限
chkconfig php-fpm on #设置开机启动
vi /usr/local/php5/etc/php.ini #编辑配置文件
找到:;open_basedir =
修改为:open_basedir = .:/tmp/ #防止php木马跨站,重要!!
找到:disable_functions =
修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
找到:;date.timezone =
修改为:date.timezone = PRC #设置时区
找到:expose_php = On
修改为:expose_php = OFF #禁止显示php版本的信息
找到:display_errors = On
修改为:display_errors = OFF #关闭错误提示
七、配置nginx支持php
vi /usr/local/nginx/conf/nginx.conf
修改/usr/local/nginx/conf/nginx.conf 配置文件,需做如下修改
user www www; #首行user去掉注释,修改Nginx运行组为www www;必须与/usr/local/php5/etc/php-fpm.conf中的user,group配置相同,否则php运行出错
index index.php index.html index.htm; #添加index.php
# pass the PHP scripts to FastCGI server listening on .0.0.1:
#
location ~ /.php$ {
root html;
fastcgi_pass .0.0.1:;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#取消FastCGI server部分location的注释,并要注意fastcgi_param行的参数,改为$document_root$fastcgi_script_name,或者使用绝对路径
/etc/init.d/nginx restart #重启nginx
八、配置php支持Zend Guard
安装Zend Guard
cd /usr/local/src
mkdir /usr/local/zend #建立Zend安装目录
tar xvfz ZendGuardLoader-php-5.3-linux-glibc-i.tar.gz #解压安装文件
cp ZendGuardLoader-php-5.3-linux-glibc-i/php-5.3.x/ZendGuardLoader.so /usr/local/zend/ #拷贝文件到安装目录
vi /usr/local/php5/etc/php.ini #编辑文件
在最后位置添加以下内容
[Zend Guard]
zend_extension=/usr/local/zend/ZendGuardLoader.so
zend_loader.enable=1
zend_loader.disable_licensing=0
zend_loader.obfuscation_level_support=3
zend_loader.license_path=
测试篇
cd /usr/local/nginx/html/ #进入nginx默认网站根目录
rm -rf /usr/local/nginx/html/* #删除默认测试页
vi index.php #新建index.php文件
?php
phpinfo();
?
:wq! #保存
chown www.www /usr/local/nginx/html/ -R #设置目录所有者
chmod /usr/local/nginx/html/ -R #设置目录权限
shutdown -r now #重启
在客户端浏览器输入服务器IP地址,可以看到相关的配置信息!
service nginx restart #重启nginx
service mysqld restart #重启mysql
/usr/local/php5/sbin/php-fpm #启动php-fpm
/etc/rc.d/init.d/php-fpm restart #重启php-fpm
/etc/rc.d/init.d/php-fpm stop #停止php-fpm
/etc/rc.d/init.d/php-fpm start #启动php-fpm
#############################################################################
备注:
nginx默认站点目录是:/usr/local/nginx/html/
权限设置:chown www.www /usr/local/nginx/html/ -R
MySQL数据库目录是:/data/mysql
权限设置:chown mysql.mysql -R /data/mysql
到此,CentOS 6.2下 Nginx1.0.+MySQL5.5.+PHP5.3.+Zend Guard Loader基本运行环境搭建完成!