首页 > 其他分享 >CH32V系列——关于指定函数在RAM中运行

CH32V系列——关于指定函数在RAM中运行

时间:2023-04-10 10:47:00浏览次数:44  
标签:FLASH 函数 RAM vma a1 a0 CH32V highcode

 注意:以下修改,都只是在原来基础上添加,不做删减

在启动文件做修改,增加下列代码:

2:
/* Load data section from flash to RAM */
la a0, _highcode_lma
la a1, _highcode_vma_start
la a2, _highcode_vma_end
bgeu a1, a2, 2f
1:
lw t0, (a0)
sw t0, (a1)
addi a0, a0, 4
addi a1, a1, 4
bltu a1, a2, 1b

具体位置如下图:

 在ld文件做修改,增加下列代码:

.highcodelalign :
{
. = ALIGN(4);
PROVIDE(_highcode_lma = .);
} >FLASH AT>FLASH

.highcode :
{
. = ALIGN(4);
PROVIDE(_highcode_vma_start = .);
*(.vector);
KEEP(*(SORT_NONE(.vector_handler)))
*(.highcode);
*(.highcode.*);
. = ALIGN(4);
PROVIDE(_highcode_vma_end = .);
} >RAM AT>FLASH

 在相关函数前面添加如下:

__attribute__((section(".highcode")))

 

标签:FLASH,函数,RAM,vma,a1,a0,CH32V,highcode
From: https://www.cnblogs.com/liaigu/p/17302175.html

相关文章

  • #yyds干货盘点#聊一聊forEach函数
    前端循环中会用到forEach,其实forEach有很多问题:forEach无法终止或者跳出循环forEach()方法不支持使用break或continue语句来跳出循环或跳过某一项。如果需要跳出循环或跳过某一项,应该使用for循环或其他支持break或continue语句的方法。forEach删除自身元素,index不可被重置在forEac......
  • paramiko的简单使用
    1.封装近期工作中需要从一个服务器上执行某些脚本,所以需要ssh到该服务器执行命令,paramiko就是一个很不错的选择为了方便使用,以下是简单的封装importparamikoclassParamikoSftp:def__new__(cls,*args,**kwargs):ifnothasattr(cls,'_instance'):......
  • 使用paramiko上传文件到Linux并且解压
    思路是,使用zipfile对文件进行压缩,之后使用paramiko提供的SFTPClient()上传文件,之后使用paramiko的SSHClient()执行Linux命令操作文件importosimportzipfileimportparamiko#使用zipfile压缩文件defzip_code(dir_name,zip_name):file_list=[]ifos.path.is......
  • 【spring学习笔记】(二)Spring MVC注解配置 参数转换注解@RequestMapping@RequestParam
    @TOC介绍在SpringMVC项目中,<\context:component-scan>配置标签还会开启@Request-Mapping、@GetMapping等映射注解功能(也就是会注册RequestMappingHandler-Mapping和RequestMappingHandlerAdapter等请求映射和处理等组件),但是<context:component-scan>不支持数据转换或验证等注解功......
  • Spring Framework面试题
    Spring与SpringFramework以及SpringBoot之间的是什么关系。Spring是一个广泛应用于Java开发的企业级开源框架。它的设计初衷是通过依赖注入(DependencyInjection,DI)和面向切面编程(AspectOrientedProgramming,AOP)等技术,简化Java应用程序的开发、测试和部署。Spring提......
  • 第136篇:Three.js基础入门动画API:setInterval 与 requestAnimationFrame的区别
    好家伙,书接上文 functionanimate(){//请求-动画-框架requestAnimationFrame(animate);//改变正方体在场景中的位置,让正方体动起来cube.rotation.x+=0.01;cube.rotation.y+=0.01;renderer.render(......
  • C++构造函数的调用
    对象特性---构造函数和析构函数构造函数---没有回值也不写void---函数值和类名相同---构造函数可以有参数,因此可以发生重载---程序在调用对象的时候自动调用构造,无须手动调用,只能调用一次析构函数语法---析构函数,没有返回值也不写void---函数名和类名也相同,在名称前加上符号~---......
  • 以太网通信控制板-外设API函数使用说明
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/CH579_DTU_PBX/index1.html"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p> 说明(打开......
  • (5)使用函数验证哥德巴赫猜想:任何一个不小于6的偶数均可表示为两个奇和。输入两个正整数
    #include<stdio.h>#include<math.h>intprime(intm){  inti;  if(m<2)    return0;  for(i=2;i<=sqrt(m);i++){    if(!(m%i))      return0;  }  return1;}intmain(){  intm,n,flag;  printf("Enterm,......
  • 生成函数应用
    生成函数应用二项式系数上指标扩展至整数域\[\binomnm=\binom{m-n-1}m\]常见生成函数\(G(x)\)\(a_k\)\(\frac1{1-x}=\sum\limits_{k=0}^\inftyx^k\)1\(\frac1{1-ax}=\sum\limits_{k=0}^\inftya^kx^k\)\(a^k\)\(\frac1{(1-x)^2}=\sum\lim......