Merge pull request #3548 from bigmagic123/fix_waring
Fix aarch64 waring
This commit is contained in:
commit
cd249bfcb1
|
@ -31,6 +31,16 @@ EXEC_PATH = r'E:/env_released_1.1.2/env/tools/gnu_gcc/arm_gcc/gcc-arm-8.3-2019.0
|
|||
|
||||
然后在`bsp\raspberry-pi\raspi3-64\`下输入scons编译即可。
|
||||
|
||||
**window环境搭建注意**
|
||||
|
||||
下载完成`gcc-arm-8.3-2019.03-i686-mingw32-aarch64-elf.tar.xz`交叉编译工具链后,最好采用7-zip解压工具进行两次解压。
|
||||
确保解压目录下的`/bin/aarch64-elf-ld.exe`文件的size不为0。
|
||||
否则编译会出现如下错误:
|
||||
|
||||
```
|
||||
collect2.exe:fatal error:CreateProcess:No such file or directory
|
||||
```
|
||||
|
||||
### 2.2 Linux上的环境搭建
|
||||
|
||||
Linux下推荐使用[gcc工具][2]。Linux版本下gcc版本可采用`gcc-arm-8.3-2019.03-x86_64-aarch64-elf`。
|
||||
|
|
|
@ -18,10 +18,6 @@
|
|||
#include "mmu.h"
|
||||
|
||||
static rt_uint64_t timerStep;
|
||||
// 0x40, 0x44, 0x48, 0x4c: Core 0~3 Timers interrupt control
|
||||
#define CORE0_TIMER_IRQ_CTRL HWREG32(0xFF800040)
|
||||
#define TIMER_IRQ 30
|
||||
#define NON_SECURE_TIMER_IRQ (1 << 1)
|
||||
|
||||
int rt_hw_get_gtimer_frq(void);
|
||||
void rt_hw_set_gtimer_val(rt_uint64_t value);
|
||||
|
@ -29,7 +25,7 @@ int rt_hw_get_gtimer_val(void);
|
|||
int rt_hw_get_cntpct_val(void);
|
||||
void rt_hw_gtimer_enable(void);
|
||||
|
||||
void core0_timer_enable_interrupt_controller()
|
||||
void core0_timer_enable_interrupt_controller(void)
|
||||
{
|
||||
CORE0_TIMER_IRQ_CTRL |= NON_SECURE_TIMER_IRQ;
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
#define BOARD_H__
|
||||
|
||||
#include <stdint.h>
|
||||
#include "iomap.h"
|
||||
|
||||
extern unsigned char __bss_start;
|
||||
extern unsigned char __bss_end;
|
||||
|
@ -22,4 +23,3 @@ extern unsigned char __bss_end;
|
|||
void rt_hw_board_init(void);
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -17,8 +17,6 @@
|
|||
#include "board.h"
|
||||
#include "interrupt.h"
|
||||
|
||||
#define GPIO_BASE (0xFE000000 + 0x00200000)
|
||||
|
||||
#define GPIO_REG_GPFSEL0(BASE) HWREG32(BASE + 0x00)
|
||||
#define GPIO_REG_GPFSEL1(BASE) HWREG32(BASE + 0x04)
|
||||
#define GPIO_REG_GPFSEL2(BASE) HWREG32(BASE + 0x08)
|
||||
|
|
|
@ -16,12 +16,6 @@
|
|||
#include "drv_uart.h"
|
||||
#include "drv_gpio.h"
|
||||
|
||||
#define UART0_BASE (0xFE000000 + 0x00201000)
|
||||
#define PL011_BASE UART0_BASE
|
||||
#define IRQ_PL011 (121 + 32)
|
||||
|
||||
#define UART_REFERENCE_CLOCK 48000000
|
||||
|
||||
struct hw_uart_device
|
||||
{
|
||||
rt_ubase_t hw_base;
|
||||
|
|
|
@ -81,4 +81,3 @@
|
|||
int rt_hw_uart_init(void);
|
||||
|
||||
#endif /* DRV_UART_H__ */
|
||||
|
||||
|
|
|
@ -1,8 +1,23 @@
|
|||
#ifndef __RASPI4_H__
|
||||
#define __RASPI4_H__
|
||||
|
||||
#define ARM_GIC_NR_IRQS 512
|
||||
#define INTC_BASE 0xff800000
|
||||
//gpio
|
||||
#define GPIO_BASE (0xFE000000 + 0x00200000)
|
||||
|
||||
//uart
|
||||
#define UART0_BASE (0xFE000000 + 0x00201000)
|
||||
#define PL011_BASE UART0_BASE
|
||||
#define IRQ_PL011 (121 + 32)
|
||||
#define UART_REFERENCE_CLOCK (48000000)
|
||||
|
||||
// 0x40, 0x44, 0x48, 0x4c: Core 0~3 Timers interrupt control
|
||||
#define CORE0_TIMER_IRQ_CTRL HWREG32(0xFF800040)
|
||||
#define TIMER_IRQ 30
|
||||
#define NON_SECURE_TIMER_IRQ (1 << 1)
|
||||
|
||||
//gic max
|
||||
#define ARM_GIC_NR_IRQS (512)
|
||||
#define INTC_BASE (0xff800000)
|
||||
#define GIC_V2_DISTRIBUTOR_BASE (INTC_BASE + 0x00041000)
|
||||
#define GIC_V2_CPU_INTERFACE_BASE (INTC_BASE + 0x00042000)
|
||||
#define GIC_V2_HYPERVISOR_BASE (INTC_BASE + 0x00044000)
|
||||
|
|
|
@ -27,8 +27,8 @@
|
|||
#define HEAP_ALIGNMENT 4 /* heap alignment */
|
||||
|
||||
#define FINSH_GET16(x) (*(x)) | (*((x)+1) << 8)
|
||||
#define FINSH_GET32(x) (rt_uint32_t)(*(x)) | ((rt_uint32_t)*((x)+1) << 8) | \
|
||||
((rt_uint32_t)*((x)+2) << 16) | ((rt_uint32_t)*((x)+3) << 24)
|
||||
#define FINSH_GET32(x) (rt_ubase_t)(*(x)) | ((rt_ubase_t)*((x)+1) << 8) | \
|
||||
((rt_ubase_t)*((x)+2) << 16) | ((rt_ubase_t)*((x)+3) << 24)
|
||||
|
||||
#define FINSH_SET16(x, v) \
|
||||
do \
|
||||
|
|
|
@ -191,7 +191,7 @@ static int finsh_compile(struct finsh_node* node)
|
|||
case FINSH_NODE_VALUE_NULL:
|
||||
case FINSH_NODE_VALUE_STRING:
|
||||
finsh_code_byte(FINSH_OP_LD_DWORD);
|
||||
finsh_code_dword((uint32_t)node->value.ptr);
|
||||
finsh_code_dword((rt_ubase_t)node->value.ptr);
|
||||
break;
|
||||
|
||||
/* arithmetic operation */
|
||||
|
|
Loading…
Reference in New Issue