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

做网站网站建设教程网页设计案例下载

做网站网站建设教程,网页设计案例下载,php网站开发培训学校,管理系统中的计算机应用自考系列文章目录 1.连续打卡第一天#xff1a;提前对CPK_RA2E1是瑞萨RA系列开发板的初体验#xff0c;了解一下 2.开发环境的选择和调试#xff08;从零开始#xff0c;加油#xff09; 3.欲速则不达#xff0c;今天是对RA2E1 基础知识的补充学习。 4.e2 studio 使用教程 5.… 系列文章目录 1.连续打卡第一天提前对CPK_RA2E1是瑞萨RA系列开发板的初体验了解一下 2.开发环境的选择和调试从零开始加油 3.欲速则不达今天是对RA2E1 基础知识的补充学习。 4.e2 studio 使用教程 5.Keil配置使用使用 RASC 生成 Keil 工程 6.Keil配置使用使用 RASC 生成 Keil 工程 7.电脑重装系统学习RA产品家族选型手册 8.问题解决、学习RA寄存器、用寄存器的方式点亮第一个LED灯。 9.继续学习RA寄存器 10.FSP固件库开发及FSP配置详解。 11.FSP固件库开发点亮第一个灯。 12.FSP固件库开发按键输入检测控制LED灯闪烁 文章目录 系列文章目录 前言 一、启动文件是什么 二、启动文件的详解 1.复位程序 2.栈区初始化 3.堆区初始化 4.中断向量表初始化 5. SystemInit() 6.使能FPU 总结 你能找到理由难过,也一定能找到理由快乐。 前言 今天学习理论知识启动文件详解。本文参考野火官方文件。 一、启动文件是什么 启动文件是系统上电复位后执行的第一个程序。 初始化堆栈。 使能FPUfloat-point unit,即浮点单元。 定位中断向量表。 配置系统时钟。 启用CORTEX-M33栈监视器。 初始化C语言运行环境。 初始化变量SystemCoreClock这个变量存放的是处理器时钟的频率。 初始化用于触发NVIC中断的ELCEvent Link Controller事件。 初始化IO口 二、启动文件的详解 1.复位程序 如stm32的复位程序 void Sys_Soft_Reset(void)// 软重启 { SCB-AIRCR 0X05FA0000|(u32)0x04; }void SoftReset(void) { __set_FAULTMASK(1); // 关闭所有中端 NVIC_SystemReset(); // 复位} 如RA2E1的复位程序 void Reset_Handler (void) {/* 使用BSP对系统进行初始化. */SystemInit();/* Call user application. */main();while (1){/* Infinite Loop. */} }         这是系统上电或复位后执行的第一个程序使用BSP对系统进行初始化随后通过main函数进入用户代码。 BSP负责使MCU从复位状态进入到用户的应用程序。在到达用户的应用程序之前BSP设置栈、堆、时钟、中断、C语言运行环境和堆栈监视器。 2.栈区初始化 /* Main stack */ static uint8_t g_main_stack[BSP_CFG_STACK_MAIN_BYTES BSP_TZ_STACK_SEAL_SIZE] BSP_ALIGN_VARIABLE(BSP_STACK_ALIGNMENT) //宏展开后为“__attribute__((aligned(8)))” BSP_PLACE_IN_SECTION(BSP_SECTION_STACK); //宏展开后为“__attribute__((section( .stack))) __attribute__((__used__))” 栈是一种先进后出的内存结构存放函数的参数值、返回值、局部变量等在程序运行过程中实时加载和释放。 如果代码中使用的局部变量和函数嵌套较多则需要增加栈区的大小需要注意的是 栈区分配大小不能超过RAM的大小。 3.堆区初始化 /* Heap */ #if (BSP_CFG_HEAP_BYTES 0) //若分配堆区大小为0则不进行初始化BSP_DONT_REMOVE static uint8_t g_heap[BSP_CFG_HEAP_BYTES] BSP_ALIGN_VARIABLE(BSP_STACK_ALIGNMENT) //宏展开后为“__attribute__((aligned(8)))” BSP_PLACE_IN_SECTION(BSP_SECTION_HEAP); //宏展开后为“__attribute__((section(.heap))) __attribute__((__used__))” #endif 堆没有栈那样先进后出的顺序用于动态内存分配一般由程序员使用malloc和free进行分配和释放。 BSP_CFG_HEAP_BYTES用于配置堆区大小当这个宏定义为0则不对堆区进行初始化。 由于MCU中可用的片上SRAM相对较少且缺乏内存保护这意味着必须非常小心地控制堆的使用以避免内存泄漏、溢出和试图过度分配。 因此默认堆区大小被设置为0。如果用户需要例如一些C标准库函数需要使用堆 可以在FSP Configuration中“BSP”属性栏的“RA Common”中通过修改“Heap size”来设置堆区大小。 4.中断向量表初始化 /* Vector table. */ BSP_DONT_REMOVE const exc_ptr_t __Vectors[BSP_CORTEX_VECTOR_TABLE_ENTRIES] BSP_PLACE_IN_SECTION(BSP_SECTION_FIXED_VECTORS) {(exc_ptr_t) (g_main_stack[0] BSP_CFG_STACK_MAIN_BYTES), /* Initial Stack Pointer */Reset_Handler, /* Reset Handler */NMI_Handler, /* NMI Handler */HardFault_Handler, /* Hard Fault Handler */MemManage_Handler, /* MPU Fault Handler */BusFault_Handler, /* Bus Fault Handler */UsageFault_Handler, /* Usage Fault Handler */SecureFault_Handler, /* Secure Fault Handler */0, /* Reserved */0, /* Reserved */0, /* Reserved */SVC_Handler, /* SVCall Handler */DebugMon_Handler, /* Debug Monitor Handler */0, /* Reserved */PendSV_Handler, /* PendSV Handler */SysTick_Handler, /* SysTick Handler */ }; 宏“BSP_PLACE_IN_SECTION(BSP_SECTION_FIXED_VECTORS)”展开后为“__attribute__((section(“.fixed_vectors”))) __attribute__((__used__))”。 意为将表放到名为“.fixed_vectors”的输入段中并且即使不被使用编译器也不会警告。 5. SystemInit() void SystemInit (void) { #if __FPU_USED/* Enable the FPU only when it is used.* Code taken from Section 7.1, Cortex-M4 TRM (DDI0439C) *//* Set bits 20-23 (CP10 and CP11) to enable FPU. */SCB-CPACR (uint32_t) CP_MASK; #endif#if BSP_TZ_SECURE_BUILDuint32_t * p_main_stack_top (uint32_t *) __Vectors[0];*p_main_stack_top BSP_TZ_STACK_SEAL_VALUE; #endif.............. //由于篇幅所限省略中间代码/* Call Post C runtime initialization hook. */R_BSP_WarmStart(BSP_WARM_START_POST_C);/* Initialize ELC events that will be used to trigger NVIC interrupts. */bsp_irq_cfg();/* Call any BSP specific code. No arguments are needed so NULL is sent. */bsp_init(NULL); } 这是MCU进入Reset_Handler后执行的第一个函数正如函数的字面意思用于初始化MCU和运行环境 运行完这段代码后将由main进入用户的hal_entry函数由于代码较长下面将分为几个部分对代码进行分析。 6.使能FPU #if __FPU_USED/* Enable the FPU only when it is used.* Code taken from Section 7.1, Cortex-M4 TRM (DDI0439C) *//* Set bits 20-23 (CP10 and CP11) to enable FPU. */SCB-CPACR (uint32_t) CP_MASK; #endif FPUFloat-Point Unit支持单精度加、减、乘、除、乘、累加、平方根运算。它还提供了定点和浮点数据格式以及浮点常量之间的转换的命令。 总结 对启动文件进行了一个整体的了解感谢野火官方珍贵的资料持续学习和努力坚持不懈。 你能找到理由难过,也一定能找到理由快乐。
http://www.hkea.cn/news/14384300/

相关文章:

  • 网站建设与管理 市场分析网络营销的特点主要包括什么
  • 花生壳怎么做网站沈阳京科医院
  • 佛山提供网站设计报价中国最新新闻头条
  • 做有支付系统的网站一般需要多少钱安全培训网站
  • 如何做英文网站外链wordpress菜单栏改成小写
  • h5做网站教程山西免费网站建设
  • 游戏网站建设收费明细顶呱呱集团 网站建设
  • 建设网站的内容规划简洁个人博客网站模板下载
  • 青海网站建设策划建设网站 系统占用空间
  • 龙泉公路建设投资有限公司网站大连模板建站软件
  • 备案 网站负责人中国工厂网
  • 最简单的网站高端品牌名称
  • 营销型网站建设风格设定包括哪些方面做网站需要的课程
  • 网站开发需要如何压缩代码一般网站建设
  • cadisen卡迪森手表网站免费搭建单页网站
  • 郑州怎么做网站排名万网二手已备案域名
  • 湖北微网站建设价格寿光市网站建设
  • 做网站需要什么花费谷城网站定制
  • 网站开发8080无法访问此页面关键词怎么选择技巧
  • 台前网站建设电话汽车行业网站建设维护服务
  • 淮北建设工程质量安全站网站浙江省专业网站制作网站建设
  • flash型网站网址2022年楼市最新政策
  • 南宁 建网站知道网站域名怎么联系
  • 哈尔滨建设工程招聘信息网站湖南搜索引擎推广平台
  • 网站开发如何跟客户沟通需求简历在线编辑免费
  • html5的网站设计二级域名分发网站
  • 深圳网站制作设计猎场第几集做的网站推广
  • 成都网站建设qghlwordpress注册免邮件
  • 做的网站在小窗口中怎么保持中间网站建设 开发网站代码
  • 上海网站建设与设计浙江中钦建设有限公司网站