当前位置: 首页 > news >正文

多语言商城网站开发淮北网站建设推广

多语言商城网站开发,淮北网站建设推广,网站的页面布局,dw网页制作怎么改字体大小【ARM Linux驱动开发】嵌入式ARM Linux驱动开发基本步骤 文章目录 开发环境驱动开发(以字符设备为例)安装驱动应用程序开发附录:压缩字符串、大小端格式转换压缩字符串浮点数压缩Packed-ASCII字符串 开发环境 首先需要交叉编译器和Linux环境…

【ARM Linux驱动开发】嵌入式ARM Linux驱动开发基本步骤

文章目录

  • 开发环境
  • 驱动开发(以字符设备为例)
  • 安装驱动
  • 应用程序开发
  • 附录:压缩字符串、大小端格式转换
    • 压缩字符串
      • 浮点数
      • 压缩Packed-ASCII字符串

开发环境

首先需要交叉编译器和Linux环境
这里采用编译器:

arm-none-linux-gnueabihf-gcc

同时需要目标ARM板子的Linux系统内核环境
并编译内核:

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- stm32mp1_atk_defconfig
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- uImage vmlinux dtbs LOADADDR=0xC2000040 -j4
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- stm32mp1_atk_defconfig
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- modules -j4

如果是第一次编译 则可能有所不同 需要根据实际手册来

以下是我编译好 打包好的虚拟机

通过百度网盘分享的文件:适用于STM32MP135开发板的开发环境虚拟机
链接:https://pan.baidu.com/s/1Sf_wk2gEPj0JlQ7X_rpQcg 
提取码:d9sj

驱动开发(以字符设备为例)

通过开发字符驱动等设备 编译成驱动*.ko文件

编译前要配置环境变量:

source /etc/profile

需要先在此文件中 指定环境所在目录
Makefile

KERNELDIR := /home/alientek/linux/atk-mp135/linux/my_linux/linux-5.15.24
CURRENT_PATH := $(shell pwd)obj-m := test.obuild: kernel_moduleskernel_modules:$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) modulesclean:$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean

执行编译

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf-

安装驱动

将编译好的驱动推荐放置到ARM板子的/lib/modules/<kernel-version>目录下

加载驱动:
insmod test.komodprobe test
建议用modprobe 原因是可以解决依赖关系
在这里插入图片描述

查看已安装的模块:
使用lsmodcat /proc/devices查看 其中 还能看到已安装的驱动设备号(新安装的不能重复)

创建设备节点文件:

mknod /dev/test c 200 0

查看节点文件:

ls /dev/test -l

在这里插入图片描述
最后如果不需要了 则卸载
卸载模块:
rmmod testmodprobe -r test

应用程序开发

应用程序可以对/dev/下的驱动进行读写等操作 前提是已经安装了驱动
开发后 使用一条简单的命令即可编译

arm-none-linux-gnueabihf-gcc test_app.c -o test_app

最后进行测试即可

附录:压缩字符串、大小端格式转换

压缩字符串

首先HART数据格式如下:
在这里插入图片描述
在这里插入图片描述
重点就是浮点数和字符串类型
Latin-1就不说了 基本用不到

浮点数

浮点数里面 如 0x40 80 00 00表示4.0f

在HART协议里面 浮点数是按大端格式发送的 就是高位先发送 低位后发送

发送出来的数组为:40,80,00,00

但在C语言对浮点数的存储中 是按小端格式来存储的 也就是40在高位 00在低位
浮点数:4.0f
地址0x1000对应00
地址0x1001对应00
地址0x1002对应80
地址0x1003对应40

若直接使用memcpy函数 则需要进行大小端转换 否则会存储为:
地址0x1000对应40
地址0x1001对应80
地址0x1002对应00
地址0x1003对应00

大小端转换:

void swap32(void * p)
{uint32_t *ptr=p;uint32_t x = *ptr;x = (x << 16) | (x >> 16);x = ((x & 0x00FF00FF) << 8) | ((x >> 8) & 0x00FF00FF);*ptr=x;
}

压缩Packed-ASCII字符串

本质上是将原本的ASCII的最高2位去掉 然后拼接起来 比如空格(0x20)
四个空格拼接后就成了
1000 0010 0000 1000 0010 0000
十六进制:82 08 20
对了一下表 0x20之前的识别不了
也就是只能识别0x20-0x5F的ASCII表
在这里插入图片描述

压缩/解压函数后面再写:

//传入的字符串和数字必须提前声明 且字符串大小至少为str_len 数组大小至少为str_len%4*3 str_len必须为4的倍数
uint8_t Trans_ASCII_to_Pack(uint8_t * str,uint8_t * buf,const uint8_t str_len)
{if(str_len%4){return 0;}uint8_t i=0;memset(buf,0,str_len/4*3);	  for(i=0;i<str_len;i++){if(str[i]==0x00){str[i]=0x20;}}for(i=0;i<str_len/4;i++){buf[3*i]=(str[4*i]<<2)|((str[4*i+1]>>4)&0x03);buf[3*i+1]=(str[4*i+1]<<4)|((str[4*i+2]>>2)&0x0F);buf[3*i+2]=(str[4*i+2]<<6)|(str[4*i+3]&0x3F);}return 1;
}//传入的字符串和数字必须提前声明 且字符串大小至少为str_len 数组大小至少为str_len%4*3 str_len必须为4的倍数
uint8_t Trans_Pack_to_ASCII(uint8_t * str,uint8_t * buf,const uint8_t str_len)
{if(str_len%4){return 0;}uint8_t i=0;memset(str,0,str_len);for(i=0;i<str_len/4;i++){str[4*i]=(buf[3*i]>>2)&0x3F;str[4*i+1]=((buf[3*i]<<4)&0x30)|(buf[3*i+1]>>4);str[4*i+2]=((buf[3*i+1]<<2)&0x3C)|(buf[3*i+2]>>6);str[4*i+3]=buf[3*i+2]&0x3F;}return 1;
}
http://www.yayakq.cn/news/722065/

相关文章:

  • 需要注册的企业网站企业网站排名优化哪家好
  • 网站留言如何做的小白node怎么做网站
  • 郑州专业网站设计公司wordpress表白源码
  • 民营医院网站建设服务器租用收费标准
  • 电子商务网站建设目标分析建设项目验收网站公示
  • 长春做网站大公司仙桃市住房建设局网站
  • 电脑网站和手机网站怎么做相同路径买域名网站
  • 网站导航的建设网站开发是先做前段还是后台
  • 湘潭网站建站公司百度爱做网站
  • 72搭建网站网页建设手机银行网站
  • 石材企业网站源码注册城乡规划师有用吗
  • 商务网站建设与维护 ppt门户网站如何建设
  • 做百度微信小程序都有哪些网站网站如何做触屏滑动
  • 成都网站建设哪家好文章郑州百姓网官网
  • 网站总体规划说明wordpress首页调用文章多张图片
  • 如何保护我做的网站模板如何创造一个公众号
  • 秦皇岛建设局网站6搜狐快站怎么样
  • 无锡网站制作网站wordpress支持pdo
  • 网站开发与网站建设北京网站优化厂家
  • 湖南正规关键词优化首选做搜狗网站优化快速排
  • 建设网站都需要什么尚仁网站建设
  • 做全景网站flash可以做网站吗
  • 做网站推广需要做什么企业网站怎么做才能留住客户
  • 苏州企业网站建设服务中心做网站配什么电脑
  • 上海方正大厦网站建设flash网站建设技术是什么
  • 建站大师排名表2021上海市黄页企业名录查询
  • 网站域名301互联网行业招聘网站
  • 章贡网站建设公积金网站建设方案
  • 建立电子商务网站国外的做的比较优秀的网站有哪些
  • 网站建设过程报告p2p倒闭 网站开发