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

做网站有流量就有收入吗住房和城乡建设部网站 城市绿地分类

做网站有流量就有收入吗,住房和城乡建设部网站 城市绿地分类,湘潭网站建设出色磐石网络,益阳市网站建设1 汇编LED原理分析 为什么要写汇编     需要用汇编初始化一些SOC外设     使用汇编初始化DDR、I.MX6U不需要     设置sp指针,一般指向DDR,设置好C语言运行环境 1.1 LED硬件分析 可以看到LED灯一端接高电平,一端连接了GPIO_3上面…

1 汇编LED原理分析

  为什么要写汇编
    需要用汇编初始化一些SOC外设
    使用汇编初始化DDR、I.MX6U不需要
    设置sp指针,一般指向DDR,设置好C语言运行环境

1.1 LED硬件分析

在这里插入图片描述
  可以看到LED灯一端接高电平,一端连接了GPIO_3上面,GPIO_3如果为低电平,LED灯亮,为高则LED灯灭。
  STM32的IO初始化流程
    使能GPIO时钟
    设置IO复用,将其复用为GPIO
    配置GPIO的电气属性
    使用GPIO,输出高低电平

  I.MX6U的IO初始化
    使能时钟CCGR0~CCGR6这七个寄存器控制着所有外设时钟,为了简单设置所有的寄存器全部为1,相当于使能所有外设时钟
    设置IO复用,将寄存器IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03的bit3~0设置为0101,即复用为GPIO模式
    将寄存器IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO03是设置GPIO的电气属性。包括压摆率、速度、驱动能力、开漏、上下拉等。
    配置GPIO功能,设置输入输出。设置GPIO1_DR寄存器bit3,设置为输出模式。

2 编写驱动

2.1 手册解读

2.2 驱动代码

.global _start @全局标号_start:/*使能所有外设时钟 */ldr r0, =0x020c4068 @CCGR0ldr r1, =0xffffffff @要向CCGR0写入的数据str r1, [r0]        @将0xffffffff写入CCGR0中ldr r0, =0x020c406c @CCGR1str r1, [r0]        @将0xffffffff写入CCGR1中 ldr r0, =0x020c4070 @CCGR2str r1, [r0]        @将0xffffffff写入CCGR2中 ldr r0, =0x020c4074 @CCGR3str r1, [r0]        @将0xffffffff写入CCGR3中 ldr r0, =0x020c4078 @CCGR4str r1, [r0]        @将0xffffffff写入CCGR4中 ldr r0, =0x020c407c @CCGR5str r1, [r0]        @将0xffffffff写入CCGR5中 ldr r0, =0x020c4080 @CCGR6str r1, [r0]        @将0xffffffff写入CCGR6中 ldr r0, =0x020c4084 @CCGR7str r1, [r0]        @将0xffffffff写入CCGR7中 /*配置GPIO1_IO03 PIN的复用为GPIO,也就是设置*IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03=5*IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03的寄存器地址为0x020E0068*/ldr r0, =0x020E0068 @IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03ldr r1, =0x5        @写入的数据str r1, [r0]        @写入 /*配置GPIO1_IO03的电气属性 也就是寄存器*IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO03*IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO03的寄存器地址为0x020e02f4**bit0:         0低速率*bit[5:3]:     110 R0/6驱动能力*bit[7:6]:     10  100MHz速度*bit11   :     0   关闭开路输出*bit12   :     1   使能pull/kepper*bit13   :    0   kepper*bit15:14:     00  默认100K下拉   *bit16   :     0   关闭hys  */    ldr r0, =0x020e02f4 @IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO03ldr r1, =0x10b0     @写入的数据str r1, [r0]        @写入   /*设置GPIO功能*设置GPIO1_GDIR寄存器,设置GPIO1_GPIO03为输出*GPIO1_GDIR寄存器地址为0x0209c004,设置GPIO1_GDIR寄存器bit3为1,*也就是设置GPIO1_IO03为输出*/   ldr r0, =0x0209c004ldr r1, =0x8str r1, [r0]/*打开LED 也就是设置GPIO1_IO03为0 *GPIO1_DR寄存器地址为0x0209c000  */ldr r0, =0x0209c000ldr r1, =0str r1, [r0]loop:b loop

2.3 编译程序

  将.c .s文件变为 .o

arm-linux-gnueabihf-gcc -c leds.s -o led.o

  arm-linux-gnueabihf-ld连接文件,用来将 众多的.o文件连接到一个指定的链接位置,就是将所有.o文件链接在一起,并且链接到指定地方。所以就要指定一个起始地址,本实验指定的链接起始地址就是代码开始运行的地址。对于6ULL来说,链接起始地址应该指向RAM地址。RAM分为外部RAM和内部RAM,外部RAM也就是DDR,内部RAM地址范围是0x900000~0x91FFFF,也可以放在外部DDR中,对于I.MX6U-ALPHA开发板,512MB字节DDR版本的核心板,DDR范围就是0x80000000到0xA0000000
  本系列视频,裸机代码的链接起始地址为0x87800000,因为后面uboot的链接起始地址也是0x87800000。要使用DDR,那么 必须要初始化DDR,这个头部信息包含了DDR的初始化参数,I.MX系列SOC内部boot rom会从SD卡、EMMC等外置存储中读取头部,然后初始化DDR,并且将bin文件拷贝到指定地方。
  Bin的运行地址一定要和链接地址一致。位置无关代码除外。

2.4 烧写bin文件

  STM32烧写到内部FLAHS
  6ULL支持SD卡、EMMC、NAND、nor、SPI flash等启动,裸机例程选择烧写到SD卡里面。
  在ubuntu下向SD卡烧写裸机bin文件。烧写不是将bin文件拷贝到SD卡中,而是将bin文件烧写到SD卡的指定绝对地址上,。而且对于I.MX而言,不能直接烧写bin文件,必须先在bin文件前面添加头部。完成这个工作,需要使用正点原子提供的imxdownload软件。
  6ULL支持JTAG,因为没有烧写算法,所以无法烧写
  但是可以通过JTAG将bin文件下载到内部ram
  6ULL的JTAG口竟然和SAI复用,SAI连接了WM8960音频DAC,为啥不用跳线帽,不懂
  在嵌入式Linux开发中基本不使用JLINK,普通开发者。
  调试代码一般点灯、串口来调试程序。

http://www.yayakq.cn/news/446385/

相关文章:

  • 做网站百度一下河南火焰山网站开发禹
  • 牛商网网站建设多少钱最专业企业营销型网站建设
  • 建设银行青海省分行门户网站wordpress后台仪表盘
  • 做网站生意买螃蟹网站站建设建技设术技术
  • 个人网站建设方案策划网展企业网站系统 免费
  • 创建网站得花多少钱做一个app需要多少成本
  • 单页网站怎么卖网站iis配置
  • 设计专业网站有哪些天津百度关键词排名
  • 金华网站建设luopan做满屏网站的尺寸
  • 游戏网站模板医院男性男科
  • 网站建设公司外包wordpress编辑器缓慢
  • 航班网站开发设计说明书建网站要多少钱呢
  • 小城镇建设网站参考文献快照关键词优化
  • 道滘东莞网站建设厦门营销网站制作
  • 衡阳网站推广品牌网站开发设计
  • 邯郸市有搞网站服服务的吗wordpress添加导航页面
  • 西安知名网站开发的公司做照片的网站
  • 蜘蛛云建网站怎样潍坊个人做网站
  • 金融平台网站开发如何网站做专题
  • 网站开发属于商标哪个类别上海谷歌seo公司
  • 网站点击量怎么看龙岗网站app建设
  • 广西南宁市住房和城乡建设局网站网站建设进度
  • 那些网站需要备案安卓aso优化
  • 网站域名过期还能用吗安徽网站优化多少钱
  • .net网站开发视频上海做网站搜索一下马来西亚的
  • 毕业设计题网站开发门户网站开发价格
  • 网站建设的审批部门是东莞建设工程交易网
  • 做药品的电商网站有哪些哈尔滨做网站收费
  • 六安网站软件建设南宁网站seo排名优化
  • 设计说明500字通用seo 优化 服务