📄 main.c
字号:
/*
* Copyright (C) ARM Limited, 1998. All rights reserved.
*/
#include <stdio.h>
#include "swi.h"
#define GPBCON (*(volatile unsigned long *)0x56000010)
#define GPBDAT (*(volatile unsigned long *)0x56000014)
#define GPB6_out (1<<(6*2)) //GPB6
#define GPB5_out (1<<(5*2)) //GPB5
unsigned *swi_vec = (unsigned *)0x08;
extern void swi_handler(void);
void ledon_left (void);
void ledon_right (void);
unsigned Install_Handler( unsigned routine, unsigned *vector )
{
unsigned vec, old_vec;
vec = (routine - (unsigned)vector - 8) >> 2;
if (vec & 0xff000000)
{
printf("Handler greater than 32MBytes from vector");
// exit (1);
}
vec = 0xea000000 | vec;
old_vec = *vector;
*vector = vec;
return (old_vec);
}
#pragma import(__use_two_region_memory)
struct __initial_stackheap {
unsigned heap_base; /* low-address end of initial heap */
unsigned stack_base; /* high-address end of initial stack */
unsigned heap_limit; /* high-address end of initial heap */
unsigned stack_limit; /* low-address end of initial stack */
};
__value_in_regs struct __initial_stackheap
__user_initial_stackheap(unsigned R0, unsigned SP, unsigned R2, unsigned SL)
{
struct __initial_stackheap config;
config.heap_base =0x32019000;//0x32018730;//0x32018b00; (unsigned int) &Image$$ER_RW$$Limit;
config.heap_limit = 0x33ff4700;
config.stack_base =0x33ff5800;//SP;// //0x33f00000;//
config.stack_limit =0x33ff4800;//0x33d00000; //
return config;
}
int main( void )
{
int result1, result2,t;
struct four_results res_3;
Install_Handler( (unsigned) swi_handler, swi_vec );
ledon_left();
result1 = multiply_two(2, 4);
ledon_right();
while (1)
{
ledon_right();
ledon_left();
}
}
void ledon_left(void)
{
int j,i;
GPBCON = GPBCON | GPB6_out;
for(j=0;j<6;j++)
{
for(i=0;i<20000;i++);
GPBDAT = 0x7BE;// GPBDAT | GPB6_on;
for(i=0;i<20000;i++);
GPBDAT = 0x7FF;// GPBDAT | GPB6_off;
}
return;
}
void ledon_right(void)
{
int j,i;
GPBCON = GPBCON | GPB5_out;
for(j=0;j<6;j++)
{
for(i=0;i<20000;i++);
GPBDAT = 0x7DE;// GPBDAT | GPB5_on;
for(i=0;i<20000;i++);
GPBDAT = 0x7FF;// GPBDAT | GPB5_off;
}
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -