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

安徽建站优化制作网站分析商业模式

安徽建站优化,制作网站分析商业模式,云南网站建设专家,网站 语言切换怎么做全志ARM926 Melis2.0系统的开发指引① 1. 编写目的2. Melis2.0 系统概述3. Melis2.0 快速开发3.1. Melis2.0 SDK 目录结构3.2. Melis2.0 编译环境3.3. Melis2.0 固件打包3.4. Melis2.0 固件烧录3.5.串口打印信息3.6. Melis2.0 添加和调用一个模块3.6.1. 为什么划分模块#xf… 全志ARM926 Melis2.0系统的开发指引① 1. 编写目的2. Melis2.0 系统概述3. Melis2.0 快速开发3.1. Melis2.0 SDK 目录结构3.2. Melis2.0 编译环境3.3. Melis2.0 固件打包3.4. Melis2.0 固件烧录3.5.串口打印信息3.6. Melis2.0 添加和调用一个模块3.6.1. 为什么划分模块3.6.2. UART 驱动模块3.6.2.1.编译3.6.2.2.加载和使用3.6.2.3.UART0 的 PIN 脚配置 -. 全志相关工具和资源-.1 全志固件镜像修改工具 ImageModify.exe 下载-.2 全志固件USB刷机工具 PhoenixSuit 下载-.3 全志Melis2.0 用户手册.pdf下载-.4 全志melis2.0 sdk源码库下载 1. 编写目的 本文档是全志 Melis2.0 系统的开发指引文档旨在协助开发者了解和掌握 Melis 系统快速搭建 Melis系统的开发环境将 Melis2.0 系统应用到产品开发中。 2. Melis2.0 系统概述 Melis2.0 系统是基于全志芯片平台自主研发的一套软件系统其内容涵盖 SDK 代码包、资源制作工具组、编译链接脚本、固件打包烧录工具套件、调试工具 5 个部分本文档将在后续章节向开发者逐一进行 介绍。 图1 3. Melis2.0 快速开发 3.1. Melis2.0 SDK 目录结构 Melis2.0 发布版本的 SDK 目录结构如下【图 2】所示下面按照源码文件夹、打包文件夹、临时库文 件夹、工具文件夹的顺序介绍各文件夹的功能使开发者对 Melis2.0 SDK 的目录结构有一个初步印象。 图2 【eBSP】板级支持包文件夹该文件夹存放的是 spi、uart、sdio 等驱动的源码文件包含了各驱动模块对应寄存器的设置代码生成的目标文件是.a 后缀的库文件在编译链接 eMod 中的驱动时使用这些.a 库。 【eLIBs】公共库文件夹生成的目标文件是.a 后缀的库文件包含了一些公共库函数接口例如一些本平台自定义的 stdio、string 等接口。 【eMod】驱动模块文件夹本文件夹主要是以 drv_、mod_开头的子文件夹各子文件夹代表一个独立的驱动/中间件模块编译每个子文件夹中的源码会生成一个 ELF 格式的可执行文件。eBSP 库中生成的.a 库大多是在这里的驱动模块编译链接时使用。 【includes】此文件夹用于存放公用的.h 后缀头文件为使代码结构清晰这些头文件会按照功能分别放到各个子文件夹中。 【interinc】此文件夹存放的头文件主要是与 ELF 格式可执行文件的解析相关的宏定义和结构体定义等。 【livedesk】本文件夹属于应用层文件夹桌面、音乐、视频、相册、日历、录音等功能的代码均存放于此。 【makefile】SDK 根目录编译脚本文件打开 cygwin 命令行窗口进入 SDK 目录输入 make clean;make命令后按“回车”键就会执行此 makefile 脚本把整个 SDK 重新编译一遍。 【workspace】编译 eMod、livedesk 文件夹中的源码所生成的驱动、中间件、应用等独立模块的 ELF 可执行文件均存放于此通过运行 workspace\suniv\beetles\image.bat 脚本将这些独立的可执行文件打包合成一个.img 后缀的文件用于烧录到开发板中的存储设备比如 Norflash。 【libs】本文件夹主要是存放.a 库不存放源码eBSP、eLIBs 文件夹中编译生成的.a 后缀文件均存放在本文件夹中 【softwares】本文件夹用于存放工具软件。 【tools】本文件夹主要存放打包脚本中调用到的 windows 应用程序例如将一些配置信息更新到已经生成的可执行文件中就会使用到本文件夹中的工具。 3.2. Melis2.0 编译环境 Melis2.0 的编译环境是 Cygwin RVDS2.2。 Cygwin 是在 windows 上运行的类 Unix 环境RVDS2.2 即 RealView Development Suite 2.2是由 ARM公司出品的交叉编译工具套件。 双击 cygwin 图标运行 cygwin通过命令行窗口输入命令。进入 SDK 根目录输入 make clean;make命令来执行根目录的 makefile 脚本重新编译整个 sdk参考下【图 3】。可使用文本编辑工具打开 makefile 文件查看和修改。 根目录下的 makefile 脚本运行时逐层编译链接 eBSP、eLIBs、eMOD、livedesk 文件夹中各个子目 录 生 成 ELF 格 式 的 可 执 行 文 件 以 供 打 包 生 成 固 件 。 这 些 ELF 可 执 行 文 件 的 分 别 存 放 到 了 workspace/beetles/ramfs 或 workspace/beetles/rootfs 文件夹。 关于 Melis2.0 编译链接工具的具体调用流程请参考第 4 章《编译工具链使用》。 图3 3.3. Melis2.0 固件打包 进入 SDK 的 workspace\suniv\beetles\文件夹双击 image.bat 运行该脚本把各驱动、中间件、应 用模块等独立的可执行文件合成到 ePDKv100.img 镜像文件以便 PhoenixSuit 烧录工具烧录到开发板的Norflash 中。 image.bat 脚本的具体运行流程可通过文本编辑工具打开查阅和修改,如【图 4】。 图4 3.4. Melis2.0 固件烧录 Melis2.0 使用的烧录工具是 PhoenixSuit通过该工具将固件烧录到开发板的 Norflash 中安装 PhoenixSuit 的操作文档请参看章节《固件烧录工具的安装》。下面我们介绍其中一种烧录方法。 【step1】双击 PhoenixSuit 图标运行 PhoenixSuit 软件点击“一键刷机”选项卡通过“浏览”按 钮选择想要烧录的固件的存放路径 【step2】用 USB 链接线把电脑和开发板链接起来 【step3】短路 Norflash 的 1、2 引脚上电 1 到 2 秒钟之后即可松开当烧录软件出现进度条表明 PhoenixSuit 通过 USB 检测到开发板之后烧录软件自动完成剩余的烧录工作 【step4】等待烧录完成会有弹窗提示烧录成功表明烧录完成之后就可重启设备运行新固件。 烧录期间和重启设备后都可以通过查看开发板的调试串口输出的打印信息来判断软件的运行状态。 图5 图6 图7 3.5.串口打印信息 安装串口工具例如 SecureCRT并打开通过串口线接收 SoC 输出的 UART 串口打印信息可以对软件的运行状态做判断参考【图 9】。 UART 串口波特率是 115200bps串口收发引脚 Rx/Tx 参看 workspace/eFex/sys_config.fex 文件中的uart_debug_port、uart_debug_tx、uart_debug_rx 参数如【图 8】所示为窗口 1UART port1 的 PA2/PA3 脚。 图8 图9 下面简单介绍一下 SecureCRT 的串口使用步骤。 【step1】双击 图标打开 SecureCRT 软件通过菜单“文件”-“快速链接”或直接点击工具 栏的“快速链接”按钮 来直接启动快速链接出现如【图 10】的提示窗口点击“协议”条目出现下 拉菜单选择“Serial”。 图10 【step2】选择 Serial 协议之后如【图 11】所示选择指定的串口把波特率设置成 115200bps取消流控的勾选项然后点击“连接”按钮即可。至此串口 SecureCRT 即可用于收发开发板 UART1 串口的数据。 图11 3.6. Melis2.0 添加和调用一个模块 3.6.1. 为什么划分模块 模块在 Melis2.0 中是一个独立的可执行文件在介绍前文 SDK 文档目录时提到过模块的概念。一个模块在 SDK 中是如何存在的它的代码组成基本结构如何它是如何编译生成的在固件中如何存在又如何被加载调用我们接下来介绍一下。 为使 SDK 结构层次清晰Melis2.0 将内核操作系统、驱动、中间件、应用等区分开来单独编译链接生成 ELF 可执行文件方便各模块独立维护。一个模块需要使用时要先加载其 ELF 可执行文件才能使用不使用时则可以卸载掉。 3.6.2. UART 驱动模块 图12 例如串口驱动进入到 eMod/drv_uart 文件夹可以看到如【图 12】所示的内容。 3.6.2.1.编译 【make.cfg】 1、通过包含 CROSSTOOL.CFG 指定了编译链接工具为 RVDS 以及 RVDS 工具在电脑上的存储路径 2、通过 INCLUDES 指定了头文件的包含路径 3、通过 LIBS 指定了库文件的包含路径 4、通过 TARGET 指定了输出文件的名称和路径 5、通过 SRCDIRS 指定了本文件夹及最大 3 层深度的子文件夹中所包含的所有文件名列表 6、通过 LINK_SCT 指定了链接所使用的文件路径 7、指定了其他编译选项 【makefile】通过 SRCCS、SRCSS 过滤得到 SRCDIRS 变量所表示的文件名列表中的.c 和.s 后缀文件参与编译连接通过 cygwin 进入本文件所在路径输入 make clean;make 后按“Enter”键,就会执行此 makefile脚本并将 ELF 可执行文件输出到 TARGET 所指定的路径下默认 TARGET 是 SDK 目录下的workspace\suniv\rootfs\drv\文件夹客户可按需自行修改。 图13 3.6.2.2.加载和使用 uart.drv 生成之后会在打包时一起合入.img 固件烧录到 Norflash 中要使用运行该驱动还需要 把该驱动加载到内存中并注册给系统的设备管理器。 【magic.c】每个模块都有一个 magic.c 文件本文件定义了一个结构体需要注意的是“type”和“mif” 元素 【type】type 是一个无符号单字节变量emod.h 头文件以宏定义的形式为每个模块分配了独占的 “type”值uart 按键驱动的 type 值是 EMOD_TYPE_DRV_UART开发者如果想添加新模块可自行添加宏定义但与其他模块的值不可相同。 【mif】mif 表示模块的接口函数结构体通过 esDEV_Plugin 函数加载驱动的过程中依次调用 mif.MInit、mif.MOpen、mif.MIoctrl、mif.MClose 函数完成 uart.drv 文件的加载、初始化、打开、设备注册和关闭。至此开发者可通过打开设备注册名所获得的句柄来调用对应的注册函数下面是一段 UART0驱动使用代码。 图14 【esDEV_Plugin(“\drv\uart.drv”, 0, NULL, 0)】如上文所属会根据\drv\uart.drv加载固件中 的 uart.drv 驱动到内存然后调用 mif.init、mif.open、mif.ioctrol、mif.close 接口在本串口驱动 中则对应的是 DRV_UART_MInit、DRV_UART_MOpen、DRV_UART_MIoctrl、DRV_UART_MClose。需要注意的是函数 DRV_UART_MIoctrl(__mp *mp, __u32 cmd, __s32 aux, void *pbuffer)在这个过程中的 4 各参数: mpDRV_UART_MOpen 的返回值 cmdDRV_CMD_PLUGIN aux对应的是 esDEV_Plugin 函数的第二个参数 0 pbuffer对应的是 esDEV_Plugin 函数的第三个参数 NULL 【pfuart0 eLIBs_fopen(“\BUS\UART0”, 0)】需要注意的是参照源码 DRV_UART_MIoctrl 在处理 DRV_CMD_PLUGIN 消息的过程中调用了 esDEV_DevReg 函数将为类名为“BUS”、设备名为“UART0”的设备及其接口函数结构体变量 uart_devop 一同注册到内核中。为使 eLIBs_fioctrl 这个接口映射成uart_devop.Ioctl 接口需要先通过 eLIBs_fopen 接口打开“\BUS\UART0”获得句柄再将句柄传递给eLIBs_fioctrl 接口则此时 eLIBs_fioctrl uart_devop.Ioctl传参也一一对应。 eLIBs_fwrite函数也因为pfuart0参数映射成了uart_devop.WriteeLIBs_fclose函数也因为pfuart0 参数映射成了 uart_devop.Close所以上述示例代码中设置波特率和数据发送的工作的得以实现。 类似的如果调用 eLIBs_fread 附带参数 pfuart0 就会映射成为 uart_devop.Read。 3.6.2.3.UART0 的 PIN 脚配置 考虑到芯片引脚封装、PCBA 成本之类的问题目前市面上的控制器大多采用了引脚复用的方式来减少芯片管脚的使用全志平台的芯片也采用了引脚复用的方法。 引脚的配置文件是“sdkroot\workspace\suniv\eFex\sys_config.fex”,uart 部分的配置如【图 14】 所示uart 驱动代码中的 esCFG_GetKeyValue 函数和 esCFG_GetGPIOSecData 函数会通过字符串传参来搜索下面的键值需要使用的串口要把 uart_used 设置为 1并将 IO 和复用功能号配置正确。本章侧重于讲解模块的加载和使用以及为配合 UART 测试所涉及到的内容所以对 sys_config.fex 和 GPIO 不在此详述相关内容可参考《Melis2.0 文档使用指南.xlsx》 图15 -. 全志相关工具和资源 -.1 全志固件镜像修改工具 ImageModify.exe 下载 下载地址 固件镜像修改工具 ImageModify.exe下载 ImageModify_20230906.rar -.2 全志固件USB刷机工具 PhoenixSuit 下载 下载地址 USB刷机工具 PhoenixSuit下载 PhoenixSuit_CN_V1.1.1_20230906.rar -.3 全志Melis2.0 用户手册.pdf下载 下载地址 全志Melis2.0 用户手册.pdf下载 documents_20230906_melis_v2.0.rar -.4 全志melis2.0 sdk源码库下载 下载地址 全志melis2.0 sdk源码库下载 melis2.0-sdk-release_20230906V2.0.rar
http://www.yingshimen.cn/news/9621/

相关文章:

  • 企业网站排版精仿虎嗅网wordpress
  • 滕州网站建设 助企网络高校门户网站源码
  • 网站设计素材下载温州网页制作
  • 找单位做网站需要注意什么深圳服装外贸网站建设
  • 屏蔽网站接口js广告中国建设平台官网
  • 贵州安顺网站建设网站打不开用什么浏览器
  • 浙江网站搭建重庆做网站熊掌号
  • 怎么免费永久创建网站无广告贵阳网站建设方案策划
  • 网站免费获取验证码怎么做创建网站有免费的吗
  • 网站空间虚拟主机续费微信息公众平台微网站建设
  • 小米商城网站设计论文网站推广服务费计入什么科目
  • 做cpa广告网站教程国外买东西的网站有哪些
  • c# 网站开发框架网站禁止火车头采集
  • 聊城网站改版解决国外网站很慢
  • 在线设计网站海报网站怎么制作免费的
  • 网站建设 杭州为个人网站做微信服务号
  • 成都网站建设需多少钱网站营销工具
  • 查看WordPress网站插件京东网站建设费用
  • 潍坊寿光网站建设网络加速器有哪些
  • 计算机网站开发图片晋江文创园网站建设
  • 松门建设规划局网站网站和网页的区别在于
  • 上海高品质网站建设公司网站地市频道建设
  • .net网站开发教程百度贴吧平面设计接单软件
  • 官方网站建设的目的教务管理系统密码忘了怎么办
  • 昆山高新区规划建设局网站网站制作公司的网站
  • 北京的制作网站的公司在哪里工程招标建设部指定网站
  • 提供衡水网站建设阿里云做网站经费
  • 国外服务器租用网站页游平台
  • 网站ip段屏蔽网站设计步骤及图解
  • 北京网站设计优选刻电商网站建设方案100例