IAR EWARM __iar_program_start, __iar_data_init3, __iar_copy_init3, __iar_zero_init3
#include <stdint.h> // The type of a pointer into the init table.
typedef void const * table_ptr_t; // The type of an initialization routine. It takes a pointer to the start of
// its entry (after the function pointer) in the init table and returns a
// pointer to after its entry.
typedef table_ptr_t init_fun_t( table_ptr_t ); typedef struct
{
int32_t mOff;
} FAddr; __no_init uint32_t __iar_SB @ r9; uint32_t const * __iar_zero_init3( uint32_t const * p )
{
uint32_t size;
while ( ( size = *p++ ) != )
{
uint32_t d = *p++;
uint32_t * dest; if ( d & )
{
d -= ;
d += __iar_SB;
} dest = (uint32_t*) d; do
{
*dest++ = ;
size -= ;
}while ( size != );
}
return p;
} uint32_t const * __iar_copy_init3( uint32_t const * p )
{
uint32_t size;
while ( ( size = *p++ ) != )
{
uint32_t const * src;
uint32_t d;
uint32_t * dest; src = (uint32_t *) ( (char const *) p + *(int32_t *) p );
p++; d = *p++; if ( d & )
{
d -= ;
d += __iar_SB;
} dest = (uint32_t *) d; do
{
*dest++ = *src++;
size -= ;
}while ( size != );
}
return p;
} #pragma section = "Region$$Table"
void __iar_data_init3( void )
{
FAddr const * pi = __section_begin("Region$$Table");
table_ptr_t pe = __section_end ("Region$$Table");
while ( pi != pe )
{
init_fun_t * fun = (init_fun_t *) ( (uint32_t) pi + pi->mOff );
++pi;
pi = fun( pi );
}
}
Mode_USR EQU 0x10
Mode_FIQ EQU 0x11
Mode_IRQ EQU 0x12
Mode_SVC EQU 0x13
Mode_ABT EQU 0x17
Mode_UND EQU 0x1B
Mode_SYS EQU 0x1F ; available on ARM Arch 4 and later I_Bit EQU 0x80 ; when I bit is set, IRQ is disabled
F_Bit EQU 0x40 ; when F bit is set, FIQ is disabled __iar_program_start
MSR CPSR_c, #Mode_SYS|F_Bit|I_Bit
ldr sp,=SFE(CSTACK) ; End of CSTACK(user)
BL __iar_data_init3
BL main
B .
IAR EWARM __iar_program_start, __iar_data_init3, __iar_copy_init3, __iar_zero_init3的更多相关文章
- IAR EWARM 字体设置
如果只想简单的设置,可进行如下设置 Tools->IDE Options->Editor->Colors and Fonts->Editor Font->Font 但是这 ...
- 安装IAR ewarm
一 安装准备 (ST方案) 1 嵌入式集成开发环境IAR ewarm 5.41 2 J-Link4.20 3 emberznet-4.3.0协议栈安装包 option1:tools - stm32软 ...
- 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.5)- 串行NOR Flash下载算法(IAR EWARM篇)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是IAR开发环境下i.MXRT的串行NOR Flash下载算法设计. 在i.MXRT硬件那些事系列之<在串行NOR Flash XI ...
- IAR EWARM Checksum Technical Note
IELFTOOL Checksum - Basic actions EW targets: ARM, RH850, RX, SH, STM8 EW component: General issues ...
- IAR EWARM Example Download List
https://srv.iar.com/ExamplesOnDemand/versions.xml http://netstorage.iar.com/SuppDB/Public/EXAMPLES/0 ...
- IAR EWARM Argument variables $PROJ_DIR$ $TOOLKIT_DIR$
在IAR中的help中输入argument variables时会找到这样的一个列表: Argument variables On many of the pages in the Options d ...
- IAR EWARM PRINTF/SCANF FORMATTER
The linker automatically chooses an appropriate formatter for printf- and scanf-related function bas ...
- IAR EWARM : Debugging with CMSIS-DAP
- IAR EWARM 关闭纯汇编函数的警告的方法
/关闭警告 #pragma diag_suppress=Pe940 uint8_t GetMyData(void) { asm(“MOV R0, #0x550F”); } //恢复警告 #pragma ...
随机推荐
- 视觉中的经典图像特征小结(一): 颜色直方图, HOG, LBP
[普兒原创, 如有错误和纰漏欢迎指正. 更新中...] 1. 颜色直方图 颜色空间在本质上是定义在某种坐标系统下的子空间,空间中的每一个坐标表示一种不同的颜色.颜色空间的目的在于给出某种颜色标准,使得 ...
- 【API】网络编程模型、多线程
1.网络通信编程 1)网络通信模型基础知识 TCP Server: WSAStartup() socket() bind() linsten() accept() send/recv() closes ...
- Linux使用一个定时器实现设置任意数量定时器功能【转】
转自:https://www.jb51.net/article/120748.htm 为什么需要这个功能,因为大多数计算机软件时钟系统通常只能有一个时钟触发一次中断.当运行多个任务时,我们会想要多个定 ...
- linux系统下如何批量更改文件夹里面所有相同字符【转】
如网上源码下载下来我们需要调试,调试过程中需要修改里面相同文字,下面提供三种方法供参考 通过sed命令替换 sed -i "s/oldyunwei/newyunwei/g" gre ...
- 高可用的MongoDB集群【转】
刚接触MongoDB,就要用到它的集群,只能硬着头皮短时间去看文档和尝试自行搭建.迁移历史数据更是让人恼火,近100G的数据文件,导入.清理垃圾数据执行的速度蜗牛一样的慢.趁着这个时间,把这几天关于M ...
- ajax请求成功但不执行success-function回调函数的问题
在success:function(data){}下面加个error:function(){},看看是不是出错了走了error.如果是,说明返回值类型不符合要求. 比如:下面代码返回String类型. ...
- js如何判断一个对象是不是Array?
在开发中,我们经常需要判断某个对象是否为数组类型,在Js中检测对象类型的常见方法都有哪些呢? typeof 操作符 对于Function, String, Number ,Undefined 等几种类 ...
- jquery-实用例子
一:jquery实现全选取消反选 3元运算:条件?真值:假值 <!DOCTYPE html> <html lang="en"> <head> & ...
- github git 无法读取远程仓库或无权限
解决方法:重新设置ssh密钥 ssh-keygen -t rsa -C "http://github.com"//输入命令后按提示输入id_rsa.pub的存储地址 和密钥密码 地 ...
- vue后台管理框架
vue后台管理框架 系列教程<一步步带你做vue后台管理框架>第一课 github地址:vue-framework-wz 线上体验地址:立即体验 在如今的科技公司中有很多前端的需求都是要写 ...