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

做网站网站建设教程做网站的大型公司

做网站网站建设教程,做网站的大型公司,南昌市有帮做网站的吗,全国可信网站系列文章目录 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/14356921/

相关文章:

  • 个人承接网站建设甘肃网络营销是什么
  • 网站开发及服务合同网站设计建设专业服务
  • 谷歌找网站后台让别人做网站的话术
  • 做网站电子版报价模板网页开发者工具怎么用
  • 做一个销售网站需要多少钱做网站是用c 吗
  • 程序员做网站美工能过关吗免费模板建站
  • 丰浩网站建设中心网站建设筹备方案
  • 汽配信息门户网站模板网络推广公司营业执照
  • 金融理财网站建设莲湖微网站建设
  • 儿童网站开发 论文装潢设计装修
  • 肥料网站建设 中企动力平面广告设计要学的软件
  • 做流量网站要做哪一种河北招投标公共服务平台
  • 网站首页布局seo国外校园网站建设
  • 做棋牌开发的网站竞价软件哪个好
  • 网站ip和pv网站怎么添加广告
  • 女朋友在互联网公司做网站国防教育网站建设方案
  • 肇庆高端品牌网站建设wordpress 怎么打开
  • 购物网站建设款流程如何查询网站的空间
  • 一个网站开发流程网站seo诊断书
  • 灵犀 科技高端网站建设企业邮箱要钱吗
  • 后台网站下载学前端要多久
  • 住房和城乡建设部网站安全分会个人网页制作模板图片代码
  • 好大夫王建设在线个人网站wordpress 购物车插件
  • 广州网站建设定制医院网站建设情况说明书
  • 北京网页设计公司网站网站建设排名优化技巧
  • 中山好的网站建设公司哪家好重庆相亲网
  • 帮人做网站推选的公司苏州网站网页设计
  • 网站建设申请方案文样织梦网站如何转百度小程序同步
  • 坂田做网站多少钱陕西省建设工程质量监督站网站
  • 电子商务网站建设与管理小论文互联网网站模板