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

阿尔法开发板 IMX6ULL 说明

一.  IMX6ULL开发板

IMX6ULL开发板即正点原子的阿尔法(ALPHA)开发板,采用恩智浦芯片,cortex-A7架构的。

二.  IM6ULL开发板说明

1.  IO说明

对于IMX6ULL芯片,一个IO对应两个寄存器,第一个寄存器负责配置其复用功能,第二个寄存器负责配置其电器特性。

如下命名方式:

IOMUXC_SNVS_SW_MUX_CTL_PAD_BOOT_MODE0  //配置其复用功能
IOMUXC_SNVS_SW_PAD_CTL_PAD_BOOT_MODE0   //配置电器特性

查找IO 复用功能的方法:

(1)  打开IMX6ULL芯片的参数手册。

(2)  第32章IO复用章节。

(3)  查找对应的管脚。

2.   cortex 汇编存在的作用

为什么要学习Cortex-A汇编?

(1)  需要用汇编初始化一些SOC外设。

(2)  使用汇编初始化DDR,I.MX6U不需要。

(3) 设置 sp 指针,一般指向 DDR,配置好 C 语言运行环境。

3.  IMUX6ULL的 IO 初始化

(1)  使能时钟。

CCGR0~CCGR6这7个寄存器控制着6ULL所有外设时钟的使能。

为了简单,设置CCGR0~CCGR6这7个寄存器全部为0XFFFFFFFF,相当于使能所有外设时钟。

(2) 设置GPIO复用

将寄存器IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03的bit3~0设置为0101,这样GPIO1_IO03就复用为GPIO。

(3)  设置GPIO的电器属性。

寄存器IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO03是设置GPIO1_IO03的电气属性。包括压摆率、速度、驱动能力、开漏、上下拉等。

(4)  配置GPIO功能,设置输入输出。

设置GPIO1_GDR寄存器bit3为1,也就是设置为输出模式。设置GPIO1_DR寄存器的bit3,为 1 表示输出高电平,为 0 表示输出低电平(由电路原理图可知)

三.  编译链接

编译

(1)  使用 arm-linux-gnueabihf-gcc将.c 文件或 .s 文件变为 .o文件。

(2)  将所有的.o文件链接为elf格式的可执行文件。

(3)  将elf 文件转为 bin 文件。

链接

链接就是将所有.o文件链接在一起,并且链接到指定的地方。本实验链接的时候要指定链接起始地址。链接起始地址就是代码运行的起始地址。

对于IMX6ULL来说,链接起始地址应该指向RAM地址。RAM分为内部RAM和外部RAM,也就是 DDR。IMX6ULL内部RAM地址范围0X900000~0X91FFFF。也可以放到外部DDR中。

对于I.MX6U-ALPHA开发板,512MB字节DDR版本的核心板,DDR范围就是0X80000000~0X9FFFFFFF。对于256MB的DDR来说,那就是0X80000000~0X8FFFFFFF。

这里我们选择外部 DDR 地址作为 .bin 文件的运行地址。
对于 I.MX 来说bin 文件不能直接运行,需要添加一个头部,这个头部信息包含了 DDR 的初始化参数,I.MX 系列 SOC 内部 boot rom 会从 SD 卡,EMMC 等外置存储中读取头部信息,然后初始化 DDR,并且将 bin 文件拷贝到指定的地方。
编译 .s 文件命令如下:
arm-linux-gnueabihf -g -c leds.s -o led.o

确定了链接地址以后就可以使用 arm-linux-gnueabihf-ld 来将前面编译出来的 led.o 文件链
接到 0X87800000 这个地址,使用如下命令:
arm-linux-gnueabihf-ld -Ttext 0X87800000 led.o -o led.elf
上述命令中 "-Ttext"  就是指定链接地址,"-o" 选项指定链接生成的 elf 文件名,这里我们命名
led.elf。上述命令执行完以后就会在工程目录下多一个 led.elf 文件。

注意:Bin 的运行地址一定要和链接起始地址一致。位置无关代码除外。


格式转换

我们需要用它将 led.elf 文件转换为 led.bin 文件,需要使用 arm-linux-gnueabihf-objcopy 工具。命令如下:
arm-linux-gnueabihf-objcopy -O binary -S -g led.elf led.bin

相关文章:

阿尔法开发板 IMX6ULL 说明

一. IMX6ULL开发板 IMX6ULL开发板即正点原子的阿尔法(ALPHA)开发板,采用恩智浦芯片,cortex-A7架构的。 二. IM6ULL开发板说明 1. IO说明 对于IMX6ULL芯片,一个IO对应两个寄存器,第一个寄存器负责配置其复用功能,…...

Altium Designer19 #学习笔记# | 基础应用技巧汇总

全文目录一.元件符号库二.元件封装库1.AD09 集成元件库/封装库三.电路原理图1. 巧用查找"相似对象功能"1.1 查找相同元件1.2. 查找相同文本1.3. 查找相同网络 :E - S - C四.PCB原理图【AD PCB模式下的常用快捷键】PCB视图放大/缩小PCB视图左/右移动PCB切换…...

Python 元类编程实现一个简单的 ORM

概述 什么是ORM?    ORM全称“Object Relational Mapping”,即对象-关系映射,就是把关系数据库的一行映射为一个对象,也就是一个类对应一个表,这样,写代码更简单,不用直接操作SQL语句。 现在我们就要实…...

《C++ Primer Plus》第18章:探讨 C++ 新标准(7)

C11 新增的其他功能 C11 增加了很多功能,本书无法全面介绍;另外,本书编写期间,其中很多功能还未得到广泛实现。然而,有些功能有必要简要地介绍一下。 并行编程 当前,为提高计算机性能,增加处…...

Redis学习(二):Redis安装测试

概述 Redis是什么 Redis, Remote Dictionary Server, 即远程字典服务。免费开源的数据库。 由C语言编写,支持网络,可基于内存亦可持久化的日志型、KV数据库,并提供所种语言的API。 Redis能干嘛 用于内存存储,持久化。rdb、ao…...

Vector - CAPL - 简介及数据结构

对于想进入车载行业或者已经在车载行业工作的朋友对于CAPL这个词都会相当的熟悉,都知道他是做车载网络测试脚本的语言,并且跟C有点类似,但是它到底是什么呢?CAPL全称(Communication Access Programming Language&#…...

20230304英语学习

What Would Happen if the Moon Disappeared Tomorrow? 如果明天月球消失了会怎样? The closest object to our planet, the Moon, may seem like Earth’s little sibling.Since its birth, the satellite has mostly just hung around, playing gravitational t…...

【基础算法】单链表的OJ练习(3) # 移除链表元素 # 相交链表 #

文章目录前言移除链表元素相交链表写在最后前言 本章的OJ练习也是相对简单的,只要能够理解解题的思路,并且依照这个思路能够快速的写出代码,我相信,你的链表水平已经足够了。 对于OJ练习(2) : ->传送门…...

【自用】SpringBoot项目通用类整理

文章目录全局Json序列化Controller日志切面全局异常拦截GlobalExceptionHandlerApiResultBusinessExceptionResponseEntityUtil全局返回体包装MP自动填充接口文档配置类自定义Async异步线程池本文主要整理各类项目中通用的配置类、工具类,便于复查自用。 全局Json序…...

动态规划法(总述)多阶段决策最优化问题

动态规划: 研究最优控制问题提出的 该问题有n个输入,问题的解由这n个输入组成,这个子集必须满足事先给定的条件,这些条件称为约束条件,满足约束条件的可行解可能不只有一个为了衡量可行解的优劣,通常以一些函数的形式&…...

MySQL跨服务器数据映射

MySQL跨服务器数据映射环境准备1. 首先是要查看数据库的federated引擎 开启/关闭 状态2. 打开任务管理器,并重启mysql服务3. 再次查看FEDERATED引擎状态,引擎已启动映射实现问题总结在日常的开发中经常进行跨数据库进行查询数据。 同服务器下跨数据库进…...

利用反射实现通过读取配置文件对类进行实例化-课后程序(JAVA基础案例教程-黑马程序员编著-第十二章-课后作业)

【案例12-3】:利用反射实现通过读取配置文件对类进行实例化 【案例介绍】 1.案例描述 现在有一个项目,项目中创建了一个Person类,在Person类中定义了一个sleep()方法。在工程中还定义了一个Student类继承Person类,在Student类中…...

1.2 CSS文本属性

CSS Text(文本)属性: 定义文本外观,颜色,装饰,缩进,行间距来修饰文本 文本样式 文本缩进 text-indent文本水平对齐方式:text-align文本修饰:text-decoration行高 line-height CSS文本颜色属性…...

SpringCloud之认识微服务

文章目录一、传统项目转型二、走进 SpringCloud三、微服务项目搭建3.1 创建一个 SpringBoot 项目3.2 创建三个 Maven 子工程3.3 为子工程创建 application.yml3.4 引入依赖3.5 数据库 建库建表3.6 编写业务提示:以下是本篇文章正文内容,SpringCloud系列学…...

【go语言之thrift协议二之server端分析】

go语言之thrift协议二serverthrift.TProtocolFactoryTTransportReadWriteCloserContextFlusherReadSizeProviderTProtocolrunServerNewTServerSocketNewCalculatorHandlerNewCalculatorProcessorNewTSimpleServer4server.ServeListenAcceptLoopprocessRequests在上一篇文章分析…...

【办公类05-03】Python批量修改文件名前面的序号(已有的序号错了,需要改成正确的号码)

背景需求下载教程,手动输入编号,有一个编号错误,导致后面所有编号都错了。30实际是29,以此类推怎样才能快速修改编号数字?前期考虑到可能要改编号,所以在每个编号后面加“ ”(空格)&…...

定向模糊测试工具Beacon基本用法

Beacon是一个定向模糊测试工具,给定行号,能够定向探索行号附近的代码区域。主要思想是采用静态分析的方法获取到与目标有关的变量的最弱前置条件(weakest precondition)的信息,并在相关位置插入断言,来提前…...

《程序员面试金典(第6版)》面试题 02.01. 移除重复节点

题目描述 编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。 示例1: 输入:[1, 2, 3, 3, 2, 1] 输出:[1, 2, 3] -示例2: 输入:[1, 1, 1, 1, 2] 输出:[1, 2] 提示: 链表长度在[0, 20000]范…...

如何对web系统开展无障碍测试

Accessibility test(无障碍测试)是一种测试方法,旨在评估软件、网站或其他数字产品的可访问性,以确保它们能够被身体残障或其他特殊需求的用户使用。这些测试通常包括使用辅助技术,如屏幕阅读器和放大器,以…...

使用vite+vue3.0 创建一个cesium基础应用 ----01 项目搭建

使用vitevue3.0 创建一个cesium基础应用 ----01 项目搭建 1.使用yarn创建一个vite项目 我们可以在vite官网找到vite创建项目的命令 https://cn.vitejs.dev/ 可以使用yarn创建项目选择使用vue3.0框架,语言使用js 创建完成后结构如下: 2.找到vite社区中的…...

【Python学习笔记】第二十七节 Python 多线程

一、进程和线程进程:是程序的一次执行,每个进程都有自己的地址空间、内存、数据栈及其他记录运行轨迹的辅助数据。线程:所有的线程都运行在同一个进程当中,共享相同的运行环境。线程有开始、顺序执行和结束三个部分, …...

【id:18】【20分】B. DS顺序表--连续操作

题目描述建立顺序表的类,属性包括:数组、实际长度、最大长度(设定为1000)该类具有以下成员函数:构造函数:实现顺序表的初始化。插入多个数据的multiinsert(int i, int n, int item[])函数,实现在…...

vi编辑器操作指令分享

vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方…...

OSPF与BFD联动配置

13.1.1BFD概念 BFD提供了一个通用的、标准化的、介质无关的、协议无关的快速故障检测机制,有以下两大优点: 对相邻转发引擎之间的通道提供轻负荷、快速故障检测。 用单一的机制对任何介质、任何协议层进行实时检测。 BFD是一个简单的“Hello”协议。两个系统之间建立BFD会…...

jQuery基础

> 🥲 🥸 🤌 🫀 🫁 🥷 🐻‍❄️🦤 🪶 🦭 🪲 🪳 🪰 🪱 🪴 🫐 🫒 &#x1…...

day39|139.单词拆分 背包问题ending

139.单词拆分 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 示例 1: 输入: s "leetcode",…...

Shell脚本编程

Shell编程 视频地址https://www.bilibili.com/video/BV1hW41167NW/?p1&vd_source977d52a6b92ce8b6ae67c16fc61f0428 第一章 Shell概述 大数据程序员为什么要学习Shell呢? 需要看懂运维人员编写的Shell程序偶尔会编写一些简单的Shell程序来管理集群&#xf…...

ChatGPT解答:JavaScript保存当前网页页面图片为pdf文件或者word文件,前端用vue2,给出详细的方案和代码

ChatGPT解答:JavaScript保存当前网页页面图片为pdf文件或者word文件,前端用vue2,给出详细的方案和代码 ChatGPTDemo Based on OpenAI API (gpt-3.5-turbo). JavaScript保存当前网页页面图片为pdf文件或者word文件,前端用vue2&am…...

Python基础学习11——文件

我们可以利用python对本电脑文件夹里的文件进行处理,python中提供了一系列相关的方法和函数供我们使用。 读取文件 我们现在在本python文件中有一个txt文件名为Lego,那么我们就可以利用python打开该文件 with open(Lego.txt) as file_text:contents …...

外网用户打不开公司的网站?web服务器端口映射到公网

我们经常会遇到这样的情景,在公司内部可以打开公司的网站,在家里或者外网却打不开,按照网上的做法,重新启动了服务器和iis,还是不行。许多用户设置了路由器端口映射功能,但是端口映射不成功怎么办&#xff…...

网站建设公司 电话销售没什么效果/网站的营销推广方案

$(window).scroll(function() { }); window的滚动事件不触发以及offset().top数据乱的原因? 如果你的css中:html,body的高度样式如果设置为100%,那么$(window).scroll方法将检测不到正确的滚出高度(0),导致…...

长沙网站seo技巧/免费网站制作软件平台

假设检验: p值:得到零假设中极端情况的概率。当p值很小时,认为零假设不成立。 单侧检验和双侧检验: z统计量:(由z分数根据统计量推导而来);(当n>30时)服从正态分布 t统计量&a…...

网站解析不过来/郑州网站推广

令人头疼的问题 现在,Docker技术正如狂风暴雨般改变着我们的基础设施架构。在腾讯,我们构建了大规模的容器云平台,其上运行了不同的应用,如广告推荐,消息推送等。其中也包括了像机器学习模型训练这类任务,这…...

佛山企业网站建设平台/推广方式和推广渠道

今天领导让小王将资料以邮件的形式发送给客户,小王一口答应下来,本来以为是非常简单的事情,但小王却犯了难。资料大小1个多G,而小王的普通邮箱可以添加的附件大小也才50M,分开发肯定是不好的。于是我就教她开通TOMVIP邮…...

一键做网站的软件/免费推广工具有哪些

本文为加拿大新不伦瑞克大学(作者:Harshal Desai)的硕士论文,共91页。 对于视距(LOS)无线信道,最近的研究表明,为了有效地提高多输入多输出(MIMO)系统的性能…...

阳谷做网站/关于搜索引擎的搜索技巧

记得几年前就碰到过这种需求,现在又碰到了,解决方法就是用contenteditable属性来模拟textarea或者input来实现根据输入内容高度自适应,因为contenteditable属性的元素有自带的这个属性,但是这种模拟的有很多不确定的元素,比如说用…...