关于MSTAR的IO初始化

volatile U8 code padInitTbl[]= //attribute((section (".isp_info"))) =

drvPadConf.c中这个初始化表,是用来实现对IO PORT的功能实现初始化的。跟了一下这个结构。表非常长,相当于把每一个IO定义了一遍,形成了一个数据表,这个表在

void MDrv_Pad_Init( void )中实调用,

void MDrv_Pad_Init( void )
{U8 code *pPadConfig;U8  u8Length;U16 u16Index; // register indexu32MapBase = _MapBase_nonPM_MAYA;pPadConfig = (U8 *)padInitTbl + 10;while (1){u16Index = (pPadConfig[0] << 8) + (pPadConfig[1]);if (u16Index == 0xFFFF) // check end of tablebreak;pPadConfig += 2;if(u16Index == 0x0000) // switch base address{if((pPadConfig[0]==0x10)||(pPadConfig[0]==0x11)){u32MapBase = _MapBase_nonPM_MAYA;}else if(pPadConfig[0]==0x00){u32MapBase = _MapBase_PM_MAYA;}pPadConfig += 2;continue;}u8Length = HIGHBYTE(u16Index) >> 6;u16Index &= 0x3FFF;while (1){//printf("%x = %bx & %bx\n", u16Index, pPadConfig[0], pPadConfig[1]);MDrv_PAD_WriteByteMask((U32)u16Index, pPadConfig[0], pPadConfig[1]);pPadConfig += 2;if (u8Length == 0)break;u8Length--;u16Index++;}}}

而MDrv_Pad_Init()函数是在SYSINIT.C文件中被调用。

void start(void)
{U32 u32MiuProtectAlign;U32 u32Start;U32 u32End;U32 u32MiuProtectAddr_Start, u32MiuProtectAddr_End;// Added by coverity_0210U32 u32Tmp;extern U8  _readonly_start[];extern U8  _readonly_end[];//extern void uart_init(U32 aeon_clock, U32 uart_clock);    //T3 FPGA testextern int  main(void);extern void MDrv_Pad_Init(void);extern void MDrv_ISR_Init(void);extern void mhal_stack_init(void *stack);char *stack;// Setup stackstack = (char *)malloc(STACK_SIZE);if (stack){stack += STACK_SIZE;mhal_stack_init(stack);}else{ASSERT(0);}#if (!BLOADER)MDrv_WDT_Init(E_WDT_DBGLV_NONE);
#endifMDrv_MMIO_GetBASE((MS_U32 *) &RIU_MAP, &u32Tmp, MS_MODULE_PM);#if (PM_LOCK_SUPPORT == 1)MDrv_SEM_Init();
#endifMDrv_MIU_SetIOMapBase();#if 0//(MEMORY_MAP <= MMAP_32MB){// Set all invalid after 32Mu32Start = 0x2000000; // 32Mu32End = 0x4000000; // 64MMDrv_MIU_Protect(3, zero_array, ALIGN(u32Start + ((1<<pageshift) - 1), pageshift), ALIGN(u32End, pageshift), ENABLE);}
#endifUtil_InitSymbolTBL();console_init();***MDrv_Pad_Init();***mdrv_gpio_init();

关于MSTAR的IO初始化相关推荐

  1. 启明云端分享|ESP32-C3 IO口控制灯的应用及串口通信示例

    启明云端作为乐鑫代理,一直都尽最大可能做完善的教程能帮助更多的开发小伙伴快速上手各种应用:今天小明为大家带来ESP32-C3IO口控制灯的应用及串口通信示例,每一个步骤我们都分享出来供小伙伴们参考! ...

  2. Linux 阻塞和非阻塞IO 实验

    目录 阻塞和非阻塞IO 阻塞和非阻塞简介 等待队列 轮询 Linux 驱动下的poll 操作函数 阻塞IO 实验 硬件原理图分析 实验程序编写 运行测试 非阻塞IO 实验 硬件原理图分析 实验程序编写 ...

  3. 如何使用Spring初始化程序创建Spring Boot项目

    你好朋友, 如果您以前使用过Spring框架,则必须意识到,即使要开始使用基本的Spring功能也需要付出一些真正的努力.有了Spring Boot,最初的麻烦就消失了,您可以在数分钟内开始使用. 欢 ...

  4. stm32按键输入实验c语言,stm32f103学习笔记(三)按键输入(IO口输入)

    学stm32第三天了,才学到按键输入,这进度也是醉了...谁叫俺c语言基础不行,还没有学过模数电呢.. 开发板上有4个按键:key0,key1,key2和wk_up,分别接在PE4,PE3,PE2和P ...

  5. STM32 IO 简介

    STM32 IO 简介 1.IO介绍 2.仿真与下载 1.IO介绍 STM32 的 IO 口可以由软件配置成如下 8 种模式: 1. 输入浮空 2. 输入上拉 3. 输入下拉 4. 模拟输入 5. 开 ...

  6. 快速入门丨篇五:如何进行运动控制器输入/输出IO的应用?

        此前,正运动技术给大家讲了,运动控制器的"固件升级".ZBasic程序开发.ZPLC程序开发以及运动控制器与触摸屏的通讯等,今天我们来学习一下如何进行运动控制器输入/输出I ...

  7. 基于STM32F103的USB学习笔记4 - 初始化

    1. IO初始化 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);     GPIO_InitSt ...

  8. 【STM32】STM32之DRV8834电机驱动(IO方式)

    本篇博文最后修改时间:2017年02月12日,13:32. 一.简介 本文介绍如何使用STM32通过DRV8834控制步进电机,使用IO方式控制转动. 二.实验平台 库版本:STM32F10x_Std ...

  9. MC9S12G128模块化分层化软件架构之二——IO驱动

    源码地址://download.csdn.net/download/Sure_gengjia/1253037 PDF文档://download.csdn.net/download/Sure_gengj ...

最新文章

  1. 入职不到3年,这所C9已有多位“90后”已成副教授!
  2. VS2017更新后 在WIN7上找不到 stdio.h等的问题
  3. java中rank函数_sql rank()函数
  4. 商户管理后台/消费统计管理/云平台商户端管理后台原型/PaaS金融服务平台商户端管理后台原型/企业管理系统后台/账户管理/工单管理/充值管理/汇款单管理/余额管理/用户管理/认证管理/web后台原型
  5. C++之模块对于 SAFESEH 映像是不安全的
  6. Intellij Idea 创建maven WebAPP项目
  7. Java 实现 1024 小游戏【附源码】
  8. JDK11下载与安装 win10 64位
  9. android 金山电池医生,金山电池医生3.0(android版).PDF
  10. 推荐两款ios端磁力下载工具
  11. 形如in (‘111,222,333‘) 的 ,Oracle的in函数(报错:无效数字)
  12. 记使用腾讯TIM开发聊天通讯遇到的问题及解决方案
  13. 九城加设网游防沉迷 3千名玩家声称罢玩魔兽
  14. 正则表达式在线生成工具
  15. 2010年6月 工作 计划 发奋图钱 再接再厉
  16. 【爬虫】python爬虫从入门到放弃
  17. 提高电脑性能增加fps的方法
  18. Solr学习 DIH增量、定时导入并检索数据
  19. Ubuntu下无法使用add-apt-repository命令 白豆腐徐长卿
  20. 马未都:人生三重境界

热门文章

  1. python(十二)Uiautomator2搭建UI自动化框架实战
  2. “x经济”的2021:Z世代成价值载体,增量发掘与存量博弈共存
  3. Scratch课程设计(二)
  4. 《信息物理融合系统(CPS)设计、建模与仿真——基于 Ptolemy II 平台》——2.8 小结...
  5. java web前端哪个城市,Java Web 是前端还是后端
  6. 2021年展望Android原生开发的现状,你不懂还不学?
  7. XP下架设奇迹教程+全套服务套+登陆器+架设PL网站教程
  8. github生成密钥步骤
  9. html5 webgl stl,新闻|Babylon.js|Babylon.js教程|Babylon.js开发|Babylon.js制作|webgl|three.js|html53D可视化开发...
  10. 水果店营销技巧与方法,水果店营销模式和技巧