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

i.MX 6ULL 裸机 IAR 环境安装

一. IAR 的安装请自行搜索

二. 使用最新版本的 IAR,需要修改 SDK

1. 在 SDK 的 core_ca7.h 加上 

#include "intrinsics.h" /* IAR Intrinsics */ 

2. debug 时需要修改每个工程下的 ddr_init.jlinkscript,参考链接 

Solved: How to connect to imx6Ull with ddr_init.jlinkscript file? - NXP Community

/*********************************************************************
*              SEGGER MICROCONTROLLER GmbH & Co. K.G.                *
*        Solutions for real time microcontroller applications        *
**********************************************************************
*                                                                    *
*        (c) 2011-2015 SEGGER Microcontroller GmbH & Co. KG          *
*                                                                    *
* Internet: www.segger.com Support: support@segger.com               *
*                                                                    *
**********************************************************************
----------------------------------------------------------------------
Purpose : 
---------------------------END-OF-HEADER------------------------------
*/void Clock_Init() {// Enable all clocksMEM_WriteU32(0x020c4068,0xffffffff);MEM_WriteU32(0x020c406c,0xffffffff);MEM_WriteU32(0x020c4070,0xffffffff);MEM_WriteU32(0x020c4074,0xffffffff);MEM_WriteU32(0x020c4078,0xffffffff);MEM_WriteU32(0x020c407c,0xffffffff);MEM_WriteU32(0x020c4080,0xffffffff);Report("Clock Init Done");
}void DDR_Init() {// Config IOMUX for ddrMEM_WriteU32(0x020E04B4,0x000C0000);MEM_WriteU32(0x020E04AC,0x00000000);MEM_WriteU32(0x020E027C,0x00000030);MEM_WriteU32(0x020E0250,0x00000030);MEM_WriteU32(0x020E024C,0x00000030);MEM_WriteU32(0x020E0490,0x00000030);MEM_WriteU32(0x020E0288,0x00000030);MEM_WriteU32(0x020E0270,0x00000000);MEM_WriteU32(0x020E0260,0x00000030);MEM_WriteU32(0x020E0264,0x00000030);MEM_WriteU32(0x020E04A0,0x00000030);MEM_WriteU32(0x020E0494,0x00020000);MEM_WriteU32(0x020E0280,0x00000030);MEM_WriteU32(0x020E0284,0x00000030);MEM_WriteU32(0x020E04B0,0x00020000);MEM_WriteU32(0x020E0498,0x00000030);MEM_WriteU32(0x020E04A4,0x00000030);MEM_WriteU32(0x020E0244,0x00000030);MEM_WriteU32(0x020E0248,0x00000030);// Config DDR Controller RegistersMEM_WriteU32(0x021B001C,0x00008000);MEM_WriteU32(0x021B0800,0xA1390003);MEM_WriteU32(0x021B080C,0x00150019);MEM_WriteU32(0x021B083C,0x41550153);MEM_WriteU32(0x021B0848,0x40403A3E);MEM_WriteU32(0x021B0850,0x40402F2A);MEM_WriteU32(0x021B081C,0x33333333);MEM_WriteU32(0x021B0820,0x33333333);MEM_WriteU32(0x021B082C,0xf3333333);MEM_WriteU32(0x021B0830,0xf3333333);MEM_WriteU32(0x021B08C0,0x00944009);MEM_WriteU32(0x021B08b8,0x00000800);// Config MMDC initMEM_WriteU32(0x021B0004,0x0002002D);MEM_WriteU32(0x021B0008,0x1B333030);MEM_WriteU32(0x021B000C,0x676B52F3);MEM_WriteU32(0x021B0010,0xB66D0B63);MEM_WriteU32(0x021B0014,0x01FF00DB);MEM_WriteU32(0x021B0018,0x00201740);MEM_WriteU32(0x021B001C,0x00008000);MEM_WriteU32(0x021B002C,0x000026D2);MEM_WriteU32(0x021B0030,0x006B1023);MEM_WriteU32(0x021B0040,0x0000005F);MEM_WriteU32(0x021B0000,0x85180000);MEM_WriteU32(0x021B0890,0x00400000);MEM_WriteU32(0x021B001C,0x02008032);MEM_WriteU32(0x021B001C,0x00008033);MEM_WriteU32(0x021B001C,0x00048031);MEM_WriteU32(0x021B001C,0x15208030);MEM_WriteU32(0x021B001C,0x04008040);MEM_WriteU32(0x021B0020,0x00000800);MEM_WriteU32(0x021B0818,0x00000227);MEM_WriteU32(0x021B0004,0x0002552D);MEM_WriteU32(0x021B0404,0x00011006);MEM_WriteU32(0x021B001C,0x00000000);Report("DDR Init Done");
}/* ConfigTarget */
void ConfigTargetSettings(void)
{Report("J-Link script: Setting up AP map");CORESIGHT_AddAP(0, CORESIGHT_AHB_AP);CORESIGHT_AddAP(1, CORESIGHT_APB_AP);CORESIGHT_IndexAPBAPToUse = 1;Report("Config JTAG Speed to 4000kHz");JTAG_Speed = 4000;
}/* SetupTarget */
void SetupTarget(void) {unsigned int reg;reg = MEM_ReadU32(0x021B0000);reg = reg & 0x80000000;if(reg == 0){Report("Enabling i.MX6ULL DDR3L");Clock_Init();DDR_Init();}
}

http://www.lryc.cn/news/341924.html

相关文章:

  • cmake进阶:文件操作
  • 在UI界面中播放视频_unity基础开发教程
  • TypeScipt 联合类型 | 号的使用
  • MATLAB 变换
  • 【005_音频开发_基础篇_ALSA_Codec_驱动-MA120x0P功放】
  • 2、​​​​​​​FreeCAD模块与核心架构总结
  • MySQL为什么默认引擎是InnoDB?
  • K8s: Helm搭建mongodb集群(1)
  • 应用分层和企业规范
  • Flutter笔记:Widgets Easier组件库(1)使用各式边框
  • OpenHarmony实战开发-上传文件
  • 外贸企业邮箱是什么?做外贸企业邮箱哪个好?
  • 写一个简单的程序
  • CentOS安装Docker指南
  • python绘图(pandas)
  • Android(Java)项目支持Kotlin语言开发
  • Terraform创建模块
  • 《华为鸿蒙:从备胎到主角的崛起之路》
  • FPGA学习笔记(2)——Verilog语法及ModelSim使用
  • 2024年十大AI工具,让你的工作学习效率飞跃
  • linux之NAMP
  • uniapp 禁止截屏(应用内,保护隐私)插件 Ba-ScreenShot
  • 数字电路-5路呼叫显示电路和8路抢答器电路
  • C++中的函数签名
  • Mac brew安装Redis之后更新配置文件的方法
  • 安卓应用开发(一):工具与环境
  • 基于springboot+vue+Mysql的在线动漫信息平台
  • C++设计模式-结构型设计模式
  • open-webui+ollama本地部署Llama3
  • 个人对行为型设计模式的理解 @by_TWJ