没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
#define USE_FAR_ADDRESSING_TO_TEXT_SECTION
#include <__mem.h> #include <__ppc_eabi_linker.h> #include <__ppc_eabi_init.h>
extern void main();
#ifdef __cplusplus extern "C" { #endif
#ifdef __cplusplus } #endif
mrr14, argc mrr15, argv mrr16, envp
#if __option(little_endian) oris r3,r3,0x0001 mfmsr r3
#endif
#if __SPE__
mtmsr r3 ori r3,r3,0x0001
bl__init_registers bl__init_hardware
__start.c
__declspec(section ".init") extern void __start(int argc, char **argv, char **envp); __declspec(section ".init") extern void exit(int);
asm void __start(register int argc, register char **argv, register char **envp) { nofralloc lis r9,0x0017 ori r9,r9,0xFFF8 lwz r10,0(r9) lis r9,0x0017 ori r9,r9,0xFFFC lwz r11,0(r9) lis r8,0xFFFF ori r8,r8,0x0000 lis r9,0xFFFF ori r9,r9,0x0000 xor r3,r11,r9 xor r4,r10,r8 or r0,r4,r3 cmpwi r0,0 bne bootloader lisr3,0x0001 ori r3,r3,0x0004 lwz r3,0(r3) mtlr r3 blrl bootloader:
stwur1, -16(r1) #else stwur1, -8(r1) #endif lir0, 0x0000 stwr0,0(r1) lir0, 0xFFFF stwr0, 4(r1)
#if __dest_os != __eppc_vxworks bl__init_data #endif #if defined(USE_FAR_ADDRESSING_TO_TEXT_SECTION) lis r3,__init_user@ha addi r3,r3,__init_user@l mtlr r3 blrl #else bl__init_user #endif
#if defined(USE_FAR_ADDRESSING_TO_TEXT_SECTION) lis r6,main@ha addi r6,r6,main@l mtlr r6 mr r3, r14 mr r4, r15 mr r5, r16 blrl #else mr r3, r14 mr r4, r15 mr r5, r16 blmain #endif
#if defined(USE_FAR_ADDRESSING_TO_TEXT_SECTION) lis r6,exit@ha addi r6,r6,exit@l mtlr r6 blrl #else bexit #endif }
#pragma overload void __init_registers(void); asm extern void __init_registers(void) { nofralloc
__start.c
extern void __copy_rom_section(void* dst, const void* src, unsigned long size) { if (size && (dst != src)) { memcpy(dst, src, size); __flush_cache( dst, size ); } }
extern void __init_bss_section(void* dst, unsigned long size) { if (size) { memset(dst, 0, size); } }
lisr1, _stack_addr@ha addir1, r1, _stack_addr@l
#include <__mem.h> #include <__ppc_eabi_linker.h> #include <__ppc_eabi_init.h>
extern void main();
#ifdef __cplusplus extern "C" { #endif
#ifdef __cplusplus } #endif
mrr14, argc mrr15, argv mrr16, envp
#if __option(little_endian) oris r3,r3,0x0001 mfmsr r3
#endif
#if __SPE__
mtmsr r3 ori r3,r3,0x0001
bl__init_registers bl__init_hardware
__start.c
__declspec(section ".init") extern void __start(int argc, char **argv, char **envp); __declspec(section ".init") extern void exit(int);
asm void __start(register int argc, register char **argv, register char **envp) { nofralloc lis r9,0x0017 ori r9,r9,0xFFF8 lwz r10,0(r9) lis r9,0x0017 ori r9,r9,0xFFFC lwz r11,0(r9) lis r8,0xFFFF ori r8,r8,0x0000 lis r9,0xFFFF ori r9,r9,0x0000 xor r3,r11,r9 xor r4,r10,r8 or r0,r4,r3 cmpwi r0,0 bne bootloader lisr3,0x0001 ori r3,r3,0x0004 lwz r3,0(r3) mtlr r3 blrl bootloader:
stwur1, -16(r1) #else stwur1, -8(r1) #endif lir0, 0x0000 stwr0,0(r1) lir0, 0xFFFF stwr0, 4(r1)
#if __dest_os != __eppc_vxworks bl__init_data #endif #if defined(USE_FAR_ADDRESSING_TO_TEXT_SECTION) lis r3,__init_user@ha addi r3,r3,__init_user@l mtlr r3 blrl #else bl__init_user #endif
#if defined(USE_FAR_ADDRESSING_TO_TEXT_SECTION) lis r6,main@ha addi r6,r6,main@l mtlr r6 mr r3, r14 mr r4, r15 mr r5, r16 blrl #else mr r3, r14 mr r4, r15 mr r5, r16 blmain #endif
#if defined(USE_FAR_ADDRESSING_TO_TEXT_SECTION) lis r6,exit@ha addi r6,r6,exit@l mtlr r6 blrl #else bexit #endif }
#pragma overload void __init_registers(void); asm extern void __init_registers(void) { nofralloc
__start.c
extern void __copy_rom_section(void* dst, const void* src, unsigned long size) { if (size && (dst != src)) { memcpy(dst, src, size); __flush_cache( dst, size ); } }
extern void __init_bss_section(void* dst, unsigned long size) { if (size) { memset(dst, 0, size); } }
lisr1, _stack_addr@ha addir1, r1, _stack_addr@l
资源评论
victory460
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
- Python排序算法.zip
- C语言实现直接插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序、计数排序,并带图详解.zip
- 常用工具集参考用于图像等数据处理
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功