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

企业网站项目流程移动端网站的优点

企业网站项目流程,移动端网站的优点,wordpress ptao,成功案例 品牌网站devmem2读写内存 自定义msh命令devmem2验证msh命令devmem2读CPUID读写全局变量 devmem2模块可实现对设备寄存器的读写操作。在RT-Thread的命令行组件Fish中添加devmem2模块#xff0c;用户可在终端输入devmem2相关命令#xff0c;FinSH根据输入对指定寄存器进行读写#xff… devmem2读写内存 自定义msh命令devmem2验证msh命令devmem2读CPUID读写全局变量 devmem2模块可实现对设备寄存器的读写操作。在RT-Thread的命令行组件Fish中添加devmem2模块用户可在终端输入devmem2相关命令FinSH根据输入对指定寄存器进行读写并将结果显示到控制终端。 关于FinSH详细内容见Finsh 自定义msh命令devmem2 msh是FinSH的传统命令行模式因其模式体积小使用方便能够解决C-styleC语言解释器模式的弊端等被广泛引用。 自定义的 msh 命令可以在 msh 模式下被运行将一个命令导出到 msh 模式可以使用如下宏接口 MSH_CMD_EXPORT(name, desc); name:要导出的命令desc:导出命令的描述在ENV工具中配置MSHcommand shell如下图 添加devmem2模块至FinSH组件需要在工程中的FinSH路径下cmd.c如…/bsp/raspberry-pico/dist/project/rt-thread/components/finsh/cmd.c添加devmem2相关源码。由于pico开发板没有mmp内存映射模块所以读写寄存器是针对物理地址进行操作。其核心代码 void devmem2(int argc, char **argv) {void *phy_addr;unsigned long read_result, writeval;off_t target;int access_type w;if(argc 2) {fprintf(stderr, \nUsage:\t%s { address } [ type [ data ] ]\n\taddress : memory address to act upon\n\ttype : access operation type : [b]yte, [h]alfword, [w]ord\n\tdata : data to be written\n\n,argv[0]);return;}target strtoul(argv[1], 0, 0);if(argc 2)access_type tolower(argv[2][0]);phy_addr (void*)target;printf(phy_addr:%x\n,phy_addr);switch(access_type) {case b:read_result *((unsigned char *) phy_addr);break;case h:read_result *((unsigned short *) phy_addr);break;case w:read_result *((unsigned long *) phy_addr);break;default:fprintf(stderr, Illegal data type %c.\n, access_type);return;}printf(Value at address 0x%X (%p): 0x%X\n, target, phy_addr, read_result); if(argc 3) {writeval strtoul(argv[3], 0, 0);switch(access_type) {case b:*((unsigned char *) phy_addr) writeval;read_result *((unsigned char *) phy_addr);break;case h:*((unsigned short *) phy_addr) writeval;read_result *((unsigned short *) phy_addr);break;case w:*((unsigned long *) phy_addr) writeval;read_result *((unsigned long *) phy_addr);break;}printf(Written 0x%X; readback 0x%X\n, writeval, read_result); } } MSH_CMD_EXPORT(devmem2, devmem2 sample: devmem2 { address } [ type [ data ] ]);添加devmem会引入新的头文件在scons构建项目时会出现因找不到个别头文件或源文件而报错针对此问题需要在当前工程的根目录下查找缺失的头文件并将头文件所在的路径添加至project/libraries/SConscript中如 验证msh命令devmem2 读CPUID 添加devmem2模块并成功构建工程后将在msh命令行按下Tab健查看devmem2命令。如图 读取设备的CPUID查看pico rp2040说明文档获取其ARM寄存器的其实地址为0xe0000000其CPUID的偏移地址offset为0xed00故其CPUID的地址为0xe000ed00。通过CPUID寄存器的值为0x410cc601与devmem2查看的一致。如图 由于pico中地址范围为0xd0000000-0xefffffff仅支持word size故halfword及byte的type读操作无效如图 此处读某一寄存器验证其type为w、h、b效果如图 读写全局变量 在…/projectt/applications/main.c中添加一全局变量test_valuescons构建项目通过…/project/rt-thread.map查看test_value变量的地址为0x200012c4如图 /* main.c */ #include rtthread.h #include rtdevice.h#define LED_PIN 25int test_value; int main(void) {rt_kprintf(Hello, RT-Thread!\n);test_value 0;rt_pin_mode(LED_PIN, PIN_MODE_OUTPUT);while (1){rt_pin_write(LED_PIN, 1);rt_thread_mdelay(3000);rt_pin_write(LED_PIN, 0);rt_thread_mdelay(1000);} }通过devmem2命令读写test_value对应寄存器内的值如图 关于逻辑地址虚拟地址与物理地址设备的实际RAM地址/硬盘空间及映射之间说明可参考如下 操作系统中逻辑地址和物理地址的区别 linux内存映射mmap原理分析 内存映射原理和内核是如何实现的完全分析mmap原理
http://www.yutouwan.com/news/121953/

相关文章:

  • 网站建设硬件条件国内做网站
  • 网站地址栏图标文字上海网站建设电影联
  • 海南省住房和城乡建设厅官方网站深圳做网站的地方
  • 重庆网站建设工业设计是什么
  • 高密做网站哪家强代理网页风格设计
  • 比较著名的seo网站购物网站网页设计图片
  • 阿里云 网站接入方式电子商务公司名称大全简单大气
  • 阿里云的云服务器做网站用哪种手表常用网站
  • 本溪网站开发公司郑州网站建站模板
  • 网站制作软件 aws湖南在建工程查询
  • 网站建设入门书籍wordpress仿互站
  • 网站建设报告论文百度文库制作人韩剧在线观看免费高清国语
  • 做一个网站成本多少厦门电脑网站建设
  • 收录网站是怎么做的企业域名免费申请
  • 环保公司网站建设龙岩解除高风险区
  • 微站是什么做信息图的网站
  • 网站备案名称能重复吗先注册域名后建设网站可以吗
  • 网站设计高端如何在已建设好的网站做修改
  • 河南省网站备案图片主题wordpress
  • 国内外贸网站建设公司什么值得买网站模板
  • 河北省住房与建设厅网站软件制作公司
  • 网站建设人员工作计划杭州旅游网站开发说明书
  • 内蒙古住房和城乡建设厅网站网站上的字体大小
  • 屯留网站建设百度站长工具怎么推广网站
  • 咸阳学校网站建设价格广告设计软件cdr
  • 建设六马路小学官方网站wordpress选择php
  • 专业网站建设人工智能单位建设网站申请报告
  • 网站改变配色方案wordpress前端登录问题
  • 网站开发合作协议合同范本oa办公系统官网
  • 做电影网站凡科网小程序