This commit is contained in:
Victor 2018-04-20 10:53:32 +03:00
parent 8529849a5a
commit d1e4ee31f1
70 changed files with 523 additions and 2274 deletions

View file

@ -20,42 +20,29 @@ clean:
clean_all:
@$(MAKE) -f $(SDK_PATH)sdkbuild.mk clean_all
.PHONY: flashburn runram reset test readfullflash flashwebfs flashboot
flashboot:
@$(MAKE) -f $(SDK_PATH)flasher.mk flashboot
flashburn:
#JLinkGDB-WrFlash.bat
@$(MAKE) -f $(SDK_PATH)flasher.mk flashburn
.PHONY: flash_images runram reset test readfullflash flash_webfs flash_boot
flash_boot:
@$(MAKE) -f $(SDK_PATH)flasher.mk flash_boot
flash_images:
@$(MAKE) -f $(SDK_PATH)flasher.mk flash_images
flash_OTA:
@$(MAKE) -f $(SDK_PATH)flasher.mk flash_OTA
webfs:
@$(MAKE) -f webfs.mk
flashwebfs:
@$(MAKE) -f webfs.mk
@$(MAKE) -f $(SDK_PATH)flasher.mk flashwebfs
#JLinkGDB-WrWebFs.bat
runram:
#JLink-RunRAM.bat
@$(MAKE) --f $(SDK_PATH)flasher.mk runram
runsdram:
#JLink-RunRAM.bat
@$(MAKE) --f $(SDK_PATH)flasher.mk runsdram
reset:
#JLink-Reset.bat
@$(MAKE) -f $(SDK_PATH)flasher.mk reset
test:
JLink-RTL00ConsoleROM.bat
#@make -f flasher.mk test
readfullflash:
#JLink-RdFullFlash.bat
@$(MAKE) -f $(SDK_PATH)flasher.mk readfullflash

View file

@ -518,7 +518,7 @@ int wifi_connect(
struct {
u8 bssid[ETH_ALEN + 2];
void * p;
} bs = { 0 };
} bs;
memcpy(bs.bssid, pWifi->bssid.octet, ETH_ALEN);
for(int i = 0; i < ETH_ALEN; i++) {
flg += bs.bssid[i];
@ -529,6 +529,9 @@ int wifi_connect(
}
else {
use_bssid = 1;
bs.bssid[ETH_ALEN] = 0;
bs.bssid[ETH_ALEN+1] = 0;
bs.p = 0;
wext_set_bssid(WLAN0_NAME, bs.bssid);
}
}

View file

@ -75,7 +75,8 @@ int32_t spi_master_write_stream(spi_t *obj, char *tx_buffer, uint32_t length);
int32_t spi_master_write_read_stream(spi_t *obj, char *tx_buffer,
char *rx_buffer, uint32_t length);
int32_t spi_slave_read_stream_timeout(spi_t *obj, char *rx_buffer, uint32_t length, uint32_t timeout_ms);
void spi_flush_rx_fifo (spi_t *obj);
void spi_set_tmod(spi_t *obj, SSI_CTRLR0_TMOD tmod); // 0 Read & Write, 1 Write only, 2 Read Only
#ifdef CONFIG_GDMA_EN
int32_t spi_slave_read_stream_dma(spi_t *obj, char *rx_buffer, uint32_t length);
int32_t spi_slave_write_stream_dma(spi_t *obj, char *tx_buffer, uint32_t length);

View file

@ -28,7 +28,7 @@ s8 spdio_tx_done_cb(void *padapter, u8 *data, u16 offset, u16 pktsize, u8 type){
s8 spdio_tx(struct spdio_t *obj, struct spdio_buf_t *pbuf){
extern s8 HalSdioRxCallback(PHAL_SDIO_ADAPTER pSDIODev, VOID *pData, u16 Offset, u16 PktSize, u8 CmdType);
//extern s8 HalSdioRxCallback(PHAL_SDIO_ADAPTER pSDIODev, VOID *pData, u16 Offset, u16 PktSize, u8 CmdType);
return HalSdioRxCallback((u8 *)pbuf, 0, pbuf->buf_size, pbuf->type); // ?????????
}

View file

@ -554,6 +554,7 @@ int32_t spi_master_write_stream(spi_t *obj, char *tx_buffer, uint32_t length)
pHalSsiOp = &obj->spi_op;
obj->state |= SPI_STATE_TX_BUSY;
/* as Master mode, sending data will receive data at sametime, so we need to
drop those received dummy data */
if ((ret=pHalSsiOp->HalSsiWriteInterrupt(pHalSsiAdaptor, (u8 *) tx_buffer, length)) != HAL_OK) {
@ -562,6 +563,14 @@ int32_t spi_master_write_stream(spi_t *obj, char *tx_buffer, uint32_t length)
return ret;
}
VOID HalSsiTModRtl8195a(VOID *Adaptor, SSI_CTRLR0_TMOD tmod);
// SSI_CTRLR0_TMOD tmod
void spi_set_tmod(spi_t *obj, SSI_CTRLR0_TMOD tmod)
{
PHAL_SSI_ADAPTOR pHalSsiAdaptor = &obj->spi_adp;
HalSsiTModRtl8195a(pHalSsiAdaptor, tmod);
}
// Master mode write a sequence of data by interrupt mode
// The length unit is byte, for both 16-bits and 8-bits mode
int32_t spi_master_write_read_stream(spi_t *obj, char *tx_buffer,

View file

@ -165,9 +165,9 @@ time_t sntp_gen_system_time(int timezone)
sntp_get_lasttime(&update_sec, &update_usec, &update_tick);
unsigned int current_tick = xTaskGetTickCount();
if(update_tick) {
unsigned int current_tick = xTaskGetTickCount();
long tick_diff_sec, tick_diff_ms;
tick_diff_sec = (current_tick - update_tick) / configTICK_RATE_HZ;
@ -176,10 +176,9 @@ time_t sntp_gen_system_time(int timezone)
update_usec += (tick_diff_ms * 1000);
current_sec = update_sec + update_usec / 1000000 + timezone * 3600;
}
else {
// else {
// current_sec = current_tick / configTICK_RATE_HZ;
current_sec = update_usec;
}
// }
return current_sec;
/*
current_tm = *(localtime(&current_sec));

View file

@ -13,27 +13,27 @@
/*
* in hal_platform.h
#define BITBAND_REG_BASE 0x40001000
#define GPIO_REG_BASE 0x40001000
*/
/*
* in rtl8195a_gpio.h
*
#define BITBAND_PORTA_DR 0x00 // data register
#define BITBAND_PORTA_DDR 0x04 // data direction
#define BITBAND_PORTA_CTRL 0x08 // data source control, we should keep it as default: data source from software
#define REG_PORTA_DR 0x00 // data register
#define REG_PORTA_DDR 0x04 // data direction
#define REG_PORTA_CTRL 0x08 // data source control, we should keep it as default: data source from software
#define BITBAND_PORTB_DR 0x0c // data register
#define BITBAND_PORTB_DDR 0x10 // data direction
#define BITBAND_PORTB_CTRL 0x14 // data source control, we should keep it as default: data source from software
#define REG_PORTB_DR 0x0c // data register
#define REG_PORTB_DDR 0x10 // data direction
#define REG_PORTB_CTRL 0x14 // data source control, we should keep it as default: data source from software
#define BITBAND_PORTC_DR 0x18 // data register
#define BITBAND_PORTC_DDR 0x1c // data direction
#define BITBAND_PORTC_CTRL 0x20 // data source control, we should keep it as default: data source from software
#define REG_PORTC_DR 0x18 // data register
#define REG_PORTC_DDR 0x1c // data direction
#define REG_PORTC_CTRL 0x20 // data source control, we should keep it as default: data source from software
#define BITBAND_EXT_PORTA 0x50 // GPIO IN read or OUT read back
#define BITBAND_EXT_PORTB 0x54 // GPIO IN read or OUT read back
#define BITBAND_EXT_PORTC 0x58 // GPIO IN read or OUT read back
#define REG_EXT_PORTA 0x50 // GPIO IN read or OUT read back
#define REG_EXT_PORTB 0x54 // GPIO IN read or OUT read back
#define REG_EXT_PORTC 0x58 // GPIO IN read or OUT read back
*/
#define BITBAND_PERI_REF 0x40000000
@ -147,7 +147,8 @@
volatile uint8_t * BitBandAddr(void *addr, uint8_t bit);
volatile uint8_t * BitBandPeriAddr(void *addr, uint8_t bit);
volatile uint8_t * GetOutPinBitBandAddr(PinName pin);
#define GetDirPinBitBandAddr(pin) (GetOutPinBitBandAddr(pin) + 4*32)
volatile uint8_t * GetInPinBitBandAddr(PinName pin);
volatile uint8_t * HardSetPin(PinName pin, HAL_GPIO_PIN_MODE pmode, uint8_t val);
volatile uint8_t * HardSetPin(PinName pin, HAL_GPIO_PIN_MODE pmode, uint8_t val); /* return pointer bit out register */
#endif // _BITBAND_IO_H_

View file

@ -794,6 +794,15 @@ VOID HalSsiTxFIFOThresholdRtl8195a(VOID *Adaptor, u32 txftl)
HAL_SSI_WRITE32(Index, REG_DW_SSI_TXFTLR, TxftlrValue);
}
VOID HalSsiTModRtl8195a(VOID *Adaptor, SSI_CTRLR0_TMOD tmod)
{
PHAL_SSI_ADAPTOR pHalSsiAdaptor = (PHAL_SSI_ADAPTOR) Adaptor;
u8 Index = pHalSsiAdaptor->Index;
/* REG_DW_SSI_CTRLR0 */
u32 Ctrlr0Value = HAL_SSI_READ32(Index, REG_DW_SSI_CTRLR0) & BIT_INVC_CTRLR0_TMOD;
Ctrlr0Value |= BIT_CTRLR0_TMOD(pHalSsiAdaptor->TransferMode);
HAL_SSI_WRITE32(Index, REG_DW_SSI_CTRLR0, Ctrlr0Value);
}
HAL_Status
HalSsiIntWriteRtl8195a(

View file

@ -45,14 +45,15 @@ volatile uint8_t * HardSetPin(PinName pin, HAL_GPIO_PIN_MODE pmode, uint8_t val)
extern HAL_GPIO_ADAPTER gBoot_Gpio_Adapter;
_pHAL_Gpio_Adapter = &gBoot_Gpio_Adapter;
}
if(_pHAL_Gpio_Adapter->Gpio_Func_En == 0) GPIO_FuncOn_8195a();
wait_us(100);
// delayMicroseconds(100);
if(_pHAL_Gpio_Adapter->Gpio_Func_En == 0) {
GPIO_FuncOn_8195a();
HalDelayUs(100); // delayMicroseconds(100); wait_us(100);
}
// paddr = 0x42000000 + (0x40001000 + 0x0c * (ippin >> 5) - 0x40000000) * 32 + ((ippin & 0x1f) * 4);
#if CONFIG_DEBUG_LOG > 3
GpioFunctionChk(ippin, ENABLE);
#endif
GPIO_PullCtrl_8195a(ippin, HAL_GPIO_HIGHZ); // Make the pin pull control default as High-Z
GPIO_PullCtrl_8195a(pin, HAL_GPIO_HIGHZ); // Make the pin pull control default as High-Z
paddr = BitBandPeriAddr((void *)(GPIO_REG_BASE + GPIO_PORTB_DR * (ippin >> 5)), ippin & 0x1f);
*paddr = val; // data register
HAL_GPIO_PIN gpio;
@ -61,7 +62,7 @@ volatile uint8_t * HardSetPin(PinName pin, HAL_GPIO_PIN_MODE pmode, uint8_t val)
HAL_GPIO_Init_8195a(&gpio);
*paddr = val; // data register
// paddr[(GPIO_PORTB_DDR - GPIO_PORTB_DR) * 32] = pmode == DOUT_PUSH_PULL; // data direction
// GPIO_PullCtrl_8195a(ippin, pmode); // set GPIO_PULL_CTRLx
// GPIO_PullCtrl_8195a(pin, pmode); // set GPIO_PULL_CTRLx
// paddr[(GPIO_PORTB_CTRL - GPIO_PORTB_DR) * 32] = 0; // data source control, we should keep it as default: data source from software
}
return paddr;

View file

@ -2,9 +2,10 @@
* ram_libgloss_retarget.o
* pvvx 2016
*/
#ifdef SWO_DEBUG_OUT_ENA
#include "device.h"
#endif
#include "rtl_bios_data.h"
//-------------------------------------------------------------------------
// Function declarations
@ -86,6 +87,15 @@ char *ram_libgloss_sbrk(int incr) {
return prev_heap_end;
}
#ifdef SWO_DEBUG_OUT_ENA
//----- ram_libgloss_write()
int ram_libgloss_write(int file, const char *ptr, int len) {
int i;
for (i = 0; i < len; ++i)
ITM_SendChar(ptr[i]);
return len;
}
#else
//----- ram_libgloss_write()
int ram_libgloss_write(int file, const char *ptr, int len) {
int i;
@ -93,6 +103,7 @@ int ram_libgloss_write(int file, const char *ptr, int len) {
HalSerialPutcRtl8195a(ptr[i]);
return len;
}
#endif
//----- ram_libgloss_open()
int ram_libgloss_open(char *file, int flags, int mode) {
@ -115,6 +126,9 @@ int ram_libgloss_open(char *file, int flags, int mode) {
//----- init_rom_libgloss_ram_map()
void init_rom_libgloss_ram_map(void) {
#ifdef SWO_DEBUG_OUT_ENA
//#error @TODO: Not init SWO!
#endif
rom_libgloss_ram_map.libgloss_close = ram_libgloss_close;
rom_libgloss_ram_map.libgloss_fstat = ram_libgloss_fstat;
rom_libgloss_ram_map.libgloss_isatty = ram_libgloss_isatty;

View file

@ -4,81 +4,33 @@ include userset.mk
include $(SDK_PATH)paths.mk
include project.mk
#---------------------------
#FLASHER = stlink-v2-1
#FLASHER = stlink-v2
FLASHER ?= Jlink
JLINK_PATH ?= D:/MCU/SEGGER/JLink_V612i/
#---------------------------
# Default
#---------------------------
# TARGET dirs
TARGET ?= build
OBJ_DIR ?= build/obj
BIN_DIR ?= build/bin
ELFFILE ?= $(OBJ_DIR)/$(TARGET).axf
FLASHER_TYPE ?= Jlink
FLASHER_PATH ?= $(SDK_PATH)flasher/
FLASHER_SPEED ?= 1000 # Start speed 1000 kHz
#---------------------------
# Compilation tools
CROSS_COMPILE ?= $(GCC_PATH)arm-none-eabi-
AR ?= $(CROSS_COMPILE)ar
CC ?= $(CROSS_COMPILE)gcc
AS ?= $(CROSS_COMPILE)as
NM ?= $(CROSS_COMPILE)nm
LD ?= $(CROSS_COMPILE)gcc
GDB ?= $(CROSS_COMPILE)gdb
SIZE ?= $(CROSS_COMPILE)size
OBJCOPY ?= $(CROSS_COMPILE)objcopy
OBJDUMP ?= $(CROSS_COMPILE)objdump
# Make bunary tools
TOOLS_PATH ?= component/soc/realtek/8195a/misc/iar_utility/common/tools/
ifneq ($(shell uname), Linux)
EXE = .exe
endif
PICK = $(TOOLS_PATH)pick$(EXE)
PADDING = $(TOOLS_PATH)padding$(EXE)
CHCKSUM = $(TOOLS_PATH)checksum$(EXE)
IMAGETOOL = $(TOOLS_PATH)rtlaimage$(EXE)
IMAGETOOL ?= $(PYTHON) $(SDK_PATH)rtlaimage.py
#---------------------------
# openocd tools
OPENOCD = $(OPENOCD_PATH)openocd.exe
JLINK_GDB ?= JLinkGDBServer.exe
OPENOCD ?= d:/MCU/OpenOCD/bin/openocd.exe
#---------------------------
# jlink tools
JLINK_PATH ?= D:/MCU/SEGGER/JLink_V612i/
JLINK_EXE ?= JLink.exe
ifeq ($(FLASHER), Jlink)
# Jlink FLASHER_SPEED ..4000 kHz
FLASHER_SPEED ?= 3500
else
ifeq ($(FLASHER),stlink-v2)
# stlink-v2 FLASHER_SPEED ..1800 kHz
FLASHER_SPEED ?= 1800
else
# over FLASHER_SPEED ..1000 kHz ?
FLASHER_SPEED ?= 1000
endif
endif
# COMPILED_BOOT if defined -> extract image1, boot head in elf
COMPILED_BOOT=1
# COMPILED_BOOT_BIN if !defined -> use source startup boot
#COMPILED_BOOT_BIN=1
# PADDINGSIZE defined -> image2 OTA
PADDINGSIZE =44k
JLINK_GDB ?= JLinkGDBServer.exe
NMAPFILE = $(OBJ_DIR)/$(TARGET).nmap
#FLASHER_PATH ?= flasher/
#RAM_IMAGE?= $(BIN_DIR)/ram.bin
RAM1_IMAGE ?= $(BIN_DIR)/ram_1.bin
RAM1P_IMAGE ?= $(BIN_DIR)/ram_1.p.bin
RAM2_IMAGE = $(BIN_DIR)/ram_2.bin
RAM2P_IMAGE = $(BIN_DIR)/ram_2.p.bin
RAM2_IMAGE ?= $(BIN_DIR)/ram_2.bin
RAM2P_IMAGE ?= $(BIN_DIR)/ram_2.p.bin
RAM3_IMAGE = $(BIN_DIR)/sdram.bin
RAM3P_IMAGE = $(BIN_DIR)/sdram.p.bin
RAM3_IMAGE ?= $(BIN_DIR)/sdram.bin
RAM3P_IMAGE ?= $(BIN_DIR)/sdram.p.bin
FLASH_IMAGE = $(BIN_DIR)/ram_all.bin
OTA_IMAGE = $(BIN_DIR)/ota.bin
@ -89,8 +41,8 @@ mp: FLASH_IMAGE = $(BIN_DIR)/ram_all_mp.bin
mp: OTA_IMAGE = $(BIN_DIR)/ota_mp.bin
.PHONY: genbin flashburn reset test readfullflash flashboot flashwebfs flash_OTA runram runsdram
.NOTPARALLEL: all mp genbin flashburn reset test readfullflash _endgenbin flashwebfs flash_OTA
.PHONY: genbin flashburn reset test readfullflash flash_boot flash_webfs flash_OTA flash_images runram runsdram
.NOTPARALLEL: all mp genbin flashburn reset test readfullflash _endgenbin flash_webfs flash_OTA flash_images
all: $(ELFFILE) $(FLASH_IMAGE) _endgenbin
mp: $(ELFFILE) $(FLASH_IMAGE) _endgenbin
@ -110,9 +62,6 @@ $(NMAPFILE): $(ELFFILE)
$(FLASH_IMAGE):$(ELFFILE)
@echo "==========================================================="
$(IMAGETOOL) -a -r -o $(BIN_DIR)/ $(ELFFILE)
ifdef USE_SDRAM
@cat $(RAM3P_IMAGE) >> $(RAM2P_IMAGE)
endif
_endgenbin:
@echo "-----------------------------------------------------------"
@ -123,16 +72,58 @@ _endgenbin:
ifeq ($(FLASHER_TYPE), Jlink)
reset:
@$(JLINK_PATH)$(JLINK_EXE) -Device CORTEX-M3 -If SWD -Speed 1000 $(FLASHER_PATH)RTL_Reset.JLinkScript
@$(JLINK_PATH)$(JLINK_EXE) -Device CORTEX-M3 -If SWD -Speed $(FLASHER_SPEED) $(FLASHER_PATH)RTL_Reset.JLinkScript
runram:
$(JLINK_PATH)$(JLINK_EXE) -Device CORTEX-M3 -If SWD -Speed 1000 $(FLASHER_PATH)RTL_RunRAM.JLinkScript
@$(JLINK_PATH)$(JLINK_EXE) -Device CORTEX-M3 -If SWD -Speed $(FLASHER_SPEED) $(FLASHER_PATH)RTL_RunRAM.JLinkScript
runsdram:
$(JLINK_PATH)$(JLINK_EXE) -Device CORTEX-M3 -If SWD -Speed 1000 $(FLASHER_PATH)RTL_RunRAM_SDR.JLinkScript
@$(JLINK_PATH)$(JLINK_EXE) -Device CORTEX-M3 -If SWD -Speed $(FLASHER_SPEED) $(FLASHER_PATH)RTL_RunRAM_SDR.JLinkScript
readfullflash:
@$(JLINK_PATH)$(JLINK_EXE) -Device CORTEX-M3 -If SWD -Speed 1000 $(FLASHER_PATH)RTL_FFlash.JLinkScript
@$(JLINK_PATH)$(JLINK_EXE) -Device CORTEX-M3 -If SWD -Speed $(FLASHER_SPEED) $(FLASHER_PATH)RTL_FFlash.JLinkScript
flash_boot:
@echo define call1>$(FLASHER_PATH)file_info.jlink
@echo set '$$'ImageSize = $(shell printf '0x%X\n' $$(stat --printf="%s" $(RAM1P_IMAGE))>>$(FLASHER_PATH)file_info.jlink
@echo set '$$'ImageAddr = 0x000000>>$(FLASHER_PATH)file_info.jlink
@echo end>>$(FLASHER_PATH)file_info.jlink
@echo define call2>>$(FLASHER_PATH)file_info.jlink
@echo FlasherWrite $(RAM2P_IMAGE) '$$'ImageAddr '$$'ImageSize>>$(FLASHER_PATH)file_info.jlink
@echo end>>$(FLASHER_PATH)file_info.jlink
@cmd /K start $(JLINK_PATH)$(JLINK_GDBSRV) -device Cortex-M3 -if SWD -ir -endian little -speed $(FLASHER_SPEED)
@$(GDB) -x $(FLASHER_PATH)gdb_wrfile.jlink
flash_images:
@cmd /K start $(JLINK_PATH)$(JLINK_GDBSRV) -device Cortex-M3 -if SWD -ir -endian little -speed $(FLASHER_SPEED)
@$(GDB) -x $(FLASHER_PATH)gdb_images.jlink
flash_OTA:
@cmd /K start $(JLINK_PATH)$(JLINK_GDBSRV) -device Cortex-M3 -if SWD -ir -endian little -speed $(FLASHER_SPEED)
@$(GDB) -x $(FLASHER_PATH)gdb_ota.jlink
flash_webfs:
@echo define call1>$(FLASHER_PATH)file_info.jlink
@echo set '$$'ImageSize = $(shell printf '0x%X\n' $$(stat --printf="%s" $(BIN_DIR)/WEBFiles.bin))>>$(FLASHER_PATH)file_info.jlink
@echo set '$$'ImageAddr = 0x0D0000>>$(FLASHER_PATH)file_info.jlink
@echo end>>$(FLASHER_PATH)file_info.jlink
@echo define call2>>$(FLASHER_PATH)file_info.jlink
@echo FlasherWrite $(BIN_DIR)/WEBFiles.bin '$$'ImageAddr '$$'ImageSize>>$(FLASHER_PATH)file_info.jlink
@echo end>>$(FLASHER_PATH)file_info.jlink
@cmd /K start $(JLINK_PATH)$(JLINK_GDBSRV) -device Cortex-M3 -if SWD -ir -endian little -speed $(FLASHER_SPEED)
@$(GDB) -x $(FLASHER_PATH)gdb_wrfile.jlink
flash_espfs:
@echo define call1>$(FLASHER_PATH)file_info.jlink
@echo set '$$'ImageSize = $(shell printf '0x%X\n' $$(stat --printf="%s" $(BIN_DIR)/webpages.espfs))>>$(FLASHER_PATH)file_info.jlink
@echo set '$$'ImageAddr = 0x0D0000>>$(FLASHER_PATH)file_info.jlink
@echo end>>$(FLASHER_PATH)file_info.jlink
@echo define call2>>$(FLASHER_PATH)file_info.jlink
@echo FlasherWrite $(BIN_DIR)/webpages.espfs '$$'ImageAddr '$$'ImageSize>>$(FLASHER_PATH)file_info.jlink
@echo end>>$(FLASHER_PATH)file_info.jlink
@cmd /K start $(JLINK_PATH)$(JLINK_GDBSRV) -device Cortex-M3 -if SWD -ir -endian little -speed $(FLASHER_SPEED)
@$(GDB) -x $(FLASHER_PATH)gdb_wrfile.jlink
flashburn:
@ -145,119 +136,75 @@ flashburn:
@echo define call3>>$(FLASHER_PATH)flash_file.jlink
@echo FlasherWrite build/bin/ram_all.bin '$$'Image2Addr '$$'Image2Size>>$(FLASHER_PATH)flash_file.jlink
@echo end>>$(FLASHER_PATH)flash_file.jlink
@cmd /K start $(JLINK_PATH)$(JLINK_GDBSRV) -device Cortex-M3 -if SWD -ir -endian little -speed 1000
@cmd /K start $(JLINK_PATH)$(JLINK_GDBSRV) -device Cortex-M3 -if SWD -ir -endian little -speed $(FLASHER_SPEED)
@$(GDB) -x $(FLASHER_PATH)gdb_wrflash.jlink
#@taskkill /F /IM $(JLINK_GDBSRV)
flashboot:
@echo define call1>$(FLASHER_PATH)file_info.jlink
@echo set '$$'ImageSize = $(shell printf '0x%X\n' $$(stat --printf="%s" $(BIN_DIR)/ram_1.p.bin))>>$(FLASHER_PATH)file_info.jlink
@echo set '$$'ImageAddr = 0x000000>>$(FLASHER_PATH)file_info.jlink
@echo end>>$(FLASHER_PATH)file_info.jlink
@echo define call2>>$(FLASHER_PATH)file_info.jlink
@echo FlasherWrite $(BIN_DIR)/ram_1.p.bin '$$'ImageAddr '$$'ImageSize>>$(FLASHER_PATH)file_info.jlink
@echo end>>$(FLASHER_PATH)file_info.jlink
@cmd /K start $(JLINK_PATH)$(JLINK_GDBSRV) -device Cortex-M3 -if SWD -ir -endian little -speed 1000
@$(GDB) -x $(FLASHER_PATH)gdb_wrfile.jlink
flashwebfs:
@echo define call1>$(FLASHER_PATH)file_info.jlink
@echo set '$$'ImageSize = $(shell printf '0x%X\n' $$(stat --printf="%s" $(BIN_DIR)/WEBFiles.bin))>>$(FLASHER_PATH)file_info.jlink
@echo set '$$'ImageAddr = 0x0D0000>>$(FLASHER_PATH)file_info.jlink
@echo end>>$(FLASHER_PATH)file_info.jlink
@echo define call2>>$(FLASHER_PATH)file_info.jlink
@echo FlasherWrite $(BIN_DIR)/WEBFiles.bin '$$'ImageAddr '$$'ImageSize>>$(FLASHER_PATH)file_info.jlink
@echo end>>$(FLASHER_PATH)file_info.jlink
@cmd /K start $(JLINK_PATH)$(JLINK_GDBSRV) -device Cortex-M3 -if SWD -ir -endian little -speed 1000
@$(GDB) -x $(FLASHER_PATH)gdb_wrfile.jlink
#@taskkill /F /IM $(JLINK_GDBSRV)
flashespfs:
@echo define call1>$(FLASHER_PATH)file_info.jlink
@echo set '$$'ImageSize = $(shell printf '0x%X\n' $$(stat --printf="%s" $(BIN_DIR)/webpages.espfs))>>$(FLASHER_PATH)file_info.jlink
@echo set '$$'ImageAddr = 0x0D0000>>$(FLASHER_PATH)file_info.jlink
@echo end>>$(FLASHER_PATH)file_info.jlink
@echo define call2>>$(FLASHER_PATH)file_info.jlink
@echo FlasherWrite $(BIN_DIR)/webpages.espfs '$$'ImageAddr '$$'ImageSize>>$(FLASHER_PATH)file_info.jlink
@echo end>>$(FLASHER_PATH)file_info.jlink
@cmd /K start $(JLINK_PATH)$(JLINK_GDBSRV) -device Cortex-M3 -if SWD -ir -endian little -speed 1000
@$(GDB) -x $(FLASHER_PATH)gdb_wrfile.jlink
#@taskkill /F /IM $(JLINK_GDBSRV)
flash_OTA:
@cmd /K start $(JLINK_PATH)$(JLINK_GDBSRV) -device Cortex-M3 -if SWD -ir -endian little -speed 1000
@$(GDB) -x $(FLASHER_PATH)gdb_ota.jlink
#@taskkill /F /IM $(JLINK_GDBSRV)
else
ifeq ($(FLASHER_TYPE),cmsis-dap)
FLASHER:=cmsis-dap
flashboot:
@$(OPENOCD) -f interface/$(FLASHER).cfg -c 'transport select swd' -c 'adapter_khz 1000' \
flash_boot:
@$(OPENOCD) -f interface/$(FLASHER_TYPE).cfg -c 'transport select swd' -c 'adapter_khz 1000' \
-f $(FLASHER_PATH)rtl8710.ocd -c 'init' -c 'reset halt' -c 'adapter_khz $(FLASHER_SPEED)' \
-c 'rtl8710_flash_auto_erase 1' -c 'rtl8710_flash_auto_verify 1' \
-c 'rtl8710_flash_write $(RAM1P_IMAGE) 0' \
-c 'rtl8710_reboot' -c 'reset run' -c shutdown
flashburn:
@$(OPENOCD) -f interface/$(FLASHER).cfg -c 'transport select swd' -c 'adapter_khz 1000' \
flash_images:
@$(OPENOCD) -f interface/$(FLASHER_TYPE).cfg -c 'transport select swd' -c 'adapter_khz 1000' \
-f $(FLASHER_PATH)rtl8710.ocd -c 'init' -c 'reset halt' -c 'adapter_khz $(FLASHER_SPEED)' \
-c 'rtl8710_flash_auto_erase 1' -c 'rtl8710_flash_auto_verify 1' \
-c 'rtl8710_flash_write $(RAM1P_IMAGE) 0' \
-c 'rtl8710_flash_write $(RAM2P_IMAGE) 0xb000' \
-c 'rtl8710_reboot' -c 'reset run' -c shutdown
flashimage2p:
@$(OPENOCD) -f interface/$(FLASHER).cfg -c 'transport select swd' -c 'adapter_khz 1000' \
-f $(FLASHER_PATH)rtl8710.ocd -c 'init' -c 'reset halt' -c 'adapter_khz $(FLASHER_SPEED)' \
-c 'rtl8710_flash_auto_erase 1' -c 'rtl8710_flash_auto_verify 1' \
-c 'rtl8710_flash_write $(RAM2P_IMAGE) 0xb000' \
-c 'rtl8710_flash_write $(OTA_IMAGE) 0x0b000' \
-c 'rtl8710_reboot' -c 'reset run' -c shutdown
flash_OTA:
@$(OPENOCD) -f interface/$(FLASHER).cfg -c 'transport select swd' -c 'adapter_khz 1000' \
@$(OPENOCD) -f interface/$(FLASHER_TYPE).cfg -c 'transport select swd' -c 'adapter_khz 1000' \
-f $(FLASHER_PATH)rtl8710.ocd -c 'init' -c 'reset halt' -c 'adapter_khz $(FLASHER_SPEED)' \
-c 'rtl8710_flash_auto_erase 1' -c 'rtl8710_flash_auto_verify 1' \
-c 'rtl8710_flash_write $(RAM2P_IMAGE) 0x80000' \
-c 'rtl8710_flash_write $(OTA_IMAGE) 0x80000' \
-c 'rtl8710_reboot' -c 'reset run' -c shutdown
flashwebfs:
@$(OPENOCD) -f interface/$(FLASHER).cfg -c 'transport select swd' -c 'adapter_khz 1000' \
flash_webfs:
@$(OPENOCD) -f interface/$(FLASHER_TYPE).cfg -c 'transport select swd' -c 'adapter_khz 1000' \
-f $(FLASHER_PATH)rtl8710.ocd -c 'init' -c 'reset halt' -c 'adapter_khz $(FLASHER_SPEED)' \
-c 'rtl8710_flash_auto_erase 1' -c 'rtl8710_flash_auto_verify 1' \
-c 'rtl8710_flash_write $(BIN_DIR)/WEBFiles.bin 0xd0000' \
-c 'rtl8710_reboot' -c 'reset run' -c shutdown
flashespfs:
@$(OPENOCD) -f interface/$(FLASHER).cfg -c 'transport select swd' -c 'adapter_khz 1000' \
@$(OPENOCD) -f interface/$(FLASHER_TYPE).cfg -c 'transport select swd' -c 'adapter_khz 1000' \
-f $(FLASHER_PATH)rtl8710.ocd -c 'init' -c 'reset halt' -c 'adapter_khz $(FLASHER_SPEED)' \
-c 'rtl8710_flash_auto_erase 1' -c 'rtl8710_flash_auto_verify 1' \
-c 'rtl8710_flash_write $(BIN_DIR)/webpages.espfs 0xd0000' \
-c 'rtl8710_reboot' -c 'reset run' -c shutdown
reset:
@$(OPENOCD) -f interface/$(FLASHER).cfg -c 'transport select swd' -c 'adapter_khz 1000' \
@$(OPENOCD) -f interface/$(FLASHER_TYPE).cfg -c 'transport select swd' -c 'adapter_khz 1000' \
-f $(FLASHER_PATH)rtl8710.ocd -c 'init' -c 'reset halt' -c 'adapter_khz $(FLASHER_SPEED)' \
-c 'mww 0x40000210 0x111157' -c 'rtl8710_reboot' -c shutdown
runram:
$(OPENOCD) -f interface/$(FLASHER).cfg -c 'transport select swd' -c 'adapter_khz 1000' \
@$(OPENOCD) -f interface/$(FLASHER_TYPE).cfg -c 'transport select swd' -c 'adapter_khz 1000' \
-f $(FLASHER_PATH)rtl8710.ocd -c 'init' -c 'reset halt' -c 'adapter_khz $(FLASHER_SPEED)' \
-c 'load_image $(RAM1_IMAGE) 0x10000bc8 bin' \
-c 'load_image $(RAM2_IMAGE) 0x10006000 bin' \
-c 'mww 0x40000210 0x20111157' -c 'rtl8710_reboot' -c shutdown
runsdram:
@$(OPENOCD) -f interface/$(FLASHER).cfg -c 'transport select swd' -c 'adapter_khz 1000' \
@$(OPENOCD) -f interface/$(FLASHER_TYPE).cfg -c 'transport select swd' -c 'adapter_khz 1000' \
-f $(FLASHER_PATH)rtl8710.ocd -c 'init' -c 'reset halt' -c 'adapter_khz $(FLASHER_SPEED)' \
-c 'load_image $(RAM1_IMAGE) 0x10000bc8 bin' \
-c 'load_image $(RAM2_IMAGE) 0x10006000 bin' \
-c 'boot_load_srdam $(RAM3_IMAGE) 0x30000000' \
-c shutdown
endif
flashburn:
@$(OPENOCD) -f interface/$(FLASHER_TYPE).cfg -c 'transport select swd' -c 'adapter_khz 1000' \
-f $(FLASHER_PATH)rtl8710.ocd -c 'init' -c 'reset halt' -c 'adapter_khz $(FLASHER_SPEED)' \
-c 'rtl8710_flash_auto_erase 1' -c 'rtl8710_flash_auto_verify 1' \
-c 'rtl8710_flash_write $(RAM1P_IMAGE) 0' \
-c 'rtl8710_flash_write $(OTA_IMAGE) 0xb000' \
-c 'rtl8710_reboot' -c 'reset run' -c shutdown
endif
clean:

View file

@ -1,6 +1,6 @@
@echo off
call paths.bat
cd flasher
cd USDK\flasher
openocd -f interface/cmsis-dap.cfg -c "adapter_khz 1000" -f rtl8710.ocd -f cortex.ocd -c "init" -c "reset halt" -c "load_ram_binary RTL00Console_ROM.bin 0x10000BA8" -c "exit"
rem -c "shutdown"

View file

@ -1,7 +1,7 @@
@echo off
call paths.bat
cd flasher
openocd -f interface/cmsis-dap.cfg -c "adapter_khz 1000" -f rtl8710.ocd -f cortex.ocd -c "init" -c "reset halt" -c "rtl8710_flash_read_id" -c "adapter_khz 5000" -c "rtl8710_flash_read ../fullflash.bin 0 1048576" -c "shutdown"
cd USDK\flasher
openocd -f interface/cmsis-dap.cfg -c "adapter_khz 1000" -f rtl8710.ocd -f cortex.ocd -c "init" -c "reset halt" -c "rtl8710_flash_read_id" -c "adapter_khz 1000" -c "rtl8710_flash_read ../../fullflash.bin 0 2097152" -c "shutdown"
echo flash read fullflash.bin
pause

View file

@ -1,6 +1,6 @@
@echo off
call paths.bat
@cd flasher
@cd USDK\flasher
openocd -f interface/cmsis-dap.cfg -c "adapter_khz 1000" -f rtl8710.ocd -f cortex.ocd -c "init" -c "reset halt" -c "restart_from_falsh" -c "shutdown"
rem

View file

@ -1,6 +1,6 @@
@echo off
call paths.bat
cd flasher
openocd -f interface/cmsis-dap.cfg -c "adapter_khz 3500" -f rtl8710.ocd -f cortex.ocd -c "init" -c "reset halt" -c "rtl8710_flash_read_id" -c "rtl8710_flash_auto_erase 1" -c "rtl8710_flash_auto_verify 1" -c "rtl8710_flash_write fullflash.bin 0" -c "shutdown"
cd USDK\flasher
openocd -f interface/cmsis-dap.cfg -c "adapter_khz 3500" -f rtl8710.ocd -f cortex.ocd -c "init" -c "reset halt" -c "rtl8710_flash_read_id" -c "rtl8710_flash_auto_erase 1" -c "rtl8710_flash_auto_verify 1" -c "rtl8710_flash_write ../../fullflash.bin 0" -c "shutdown"
pause

View file

@ -1,3 +1,3 @@
@echo off
call paths.bat
start JLink.exe -Device CORTEX-M3 -If SWD -Speed 4000 flasher\RTL00ConsoleROM.JLinkScript
start JLink.exe -Device CORTEX-M3 -If SWD -Speed 4000 USDK\flasher\RTL00ConsoleROM.JLinkScript

View file

@ -1,3 +1,3 @@
@echo off
call paths.bat
JLink.exe -Device CORTEX-M3 -If SWD -Speed 10000 flasher/RTL_FFlash.JLinkScript
JLink.exe -Device CORTEX-M3 -If SWD -Speed 10000 USDK/flasher/RTL_FFlash.JLinkScript

View file

@ -1,3 +1,3 @@
@echo off
call paths.bat
JLink.exe -Device CORTEX-M3 -If SWD -Speed 1000 flasher\RTL_Reset.JLinkScript
JLink.exe -Device CORTEX-M3 -If SWD -Speed 1000 USDK\flasher\RTL_Reset.JLinkScript

View file

@ -1,6 +1,6 @@
@echo off
call paths.bat
start JLinkGDBServer.exe -device Cortex-M3 -if SWD -ir -endian little -speed 1000
arm-none-eabi-gdb.exe -x flasher/gdb_init.jlink
arm-none-eabi-gdb.exe -x USDK/flasher/gdb_init.jlink
taskkill /F /IM JLinkGDBServer.exe

View file

@ -1,4 +1,4 @@
@echo off
call paths.bat
taskkill /F /IM openocd.exe
start openocd -f interface\Jlink.cfg -f flasher\ameba1.cfg
start openocd -f USDK\interface\Jlink.cfg -f flasher\ameba1.cfg

View file

@ -1 +1 @@
PATH=D:\MCU\GNU_Tools_ARM_Embedded\5.4_2016q2\bin;D:\MCU\SEGGER\JLink_V612i;%PATH%
PATH=D:\MCU\GNU_Tools_ARM_Embedded\7.2017-q4-major\bin;D:\MCU\SEGGER\JLink_V630g;D:\MCU\OpenOCD\bin;%PATH%

View file

@ -1,19 +1,22 @@
#---------------------------
# User defined (in userset.mk)
# Set Paths & Tools
#---------------------------
SDK_PATH ?= ../SDKRTLA/USDK/
#GCC_PATH = d:/MCU/GNU_Tools_ARM_Embedded/6.2017-q1-update/bin/# + or set in PATH
OPENOCD_PATH = d:/MCU/OpenOCD/bin/
TOOLS_PATH ?= $(SDK_PATH)component/soc/realtek/8195a/misc/iar_utility/common/tools/
SDK_PATH ?= ../RTL00_WEB/USDK/
#GCC_PATH ?= d:/MCU/GNU_Tools_ARM_Embedded/7.2017-q4-major/bin/# + or set in PATH
TOOLS_PATH ?= $(SDK_PATH)
FLASHER_TYPE ?= Jlink
PYTHON27_PATH ?= c:/Python27/
#FLASHER_TYPE ?= OCD
FLASHER_PATH ?= $(SDK_PATH)flasher/
JLINK_PATH ?= D:/MCU/SEGGER/JLink_V612i/
JLINK_GDBSRV ?= JLinkGDBServer.exe
#---------------------------
# Default
#---------------------------
ifneq ($(shell uname), Linux)
PYTHON ?= C:/Python27/python
OPENOCD ?= d:/MCU/OpenOCD/bin/openocd.exe
JLINK_PATH ?= D:/MCU/SEGGER/JLink_V630g/
else
PYTHON ?= python
OPENOCD ?= /mnt/d/MCU/OpenOCD/bin/openocd.exe
JLINK_PATH ?= /mnt/d/MCU/SEGGER/JLink_V630g/
endif
# Compilation tools
CROSS_COMPILE = $(GCC_PATH)arm-none-eabi-
AR = $(CROSS_COMPILE)ar
@ -32,15 +35,4 @@ OBJ_DIR ?= $(TARGET)/obj
BIN_DIR ?= $(TARGET)/bin
ELFFILE ?= $(OBJ_DIR)/$(TARGET).axf
# Make bunary tools
ifneq ($(shell uname), Linux)
EXE = .exe
endif
PICK = $(TOOLS_PATH)pick$(EXE)
PADDING = $(TOOLS_PATH)padding$(EXE)
CHCKSUM = $(TOOLS_PATH)checksum$(EXE)
PYTHON = $(PYTHON27)python$(EXE)
# openocd tools
OPENOCD = $(OPENOCD_PATH)openocd

View file

@ -18,11 +18,6 @@ SRC_C_LIST = $(patsubst sdk/%,$(SDK_PATH)%,$(ADD_SRC_C)) $(patsubst sdk/%,$(SDK_
OBJ_LIST = $(addprefix $(OBJ_DIR)/,$(patsubst %.c,%.o,$(SRC_C_LIST)))
DEPENDENCY_LIST = $(patsubst %.c,$(OBJ_DIR)/%.d,$(SRC_C_LIST))
TARGET ?= build
OBJ_DIR ?= $(TARGET)/obj
BIN_DIR ?= $(TARGET)/bin
ELFFILE ?= $(OBJ_DIR)/$(TARGET).axf
all: prerequirement application
mp: prerequirement application

View file

@ -52,7 +52,7 @@ all: LIBS +=_rtsp _usbh _usbd
mp: LIBS +=_rtsp _usbh _usbd
endif
# m c nosys gcc
PATHLIBS = sdk/component/soc/realtek/8195a/misc/bsp/lib/common/gcc
PATHLIBS = sdk/component/soc/realtek/8195a/misc/bsp/lib/common/GCC
ifdef USE_SDRAM
CFLAGS += -DUSE_SDRAM=1
@ -412,6 +412,10 @@ SRC_C += sdk/component/soc/realtek/8195a/misc/rtl_std_lib/lib_rtlstd/ram_libc.c
SRC_C += sdk/component/soc/realtek/8195a/misc/rtl_std_lib/lib_rtlstd/ram_libgloss_retarget.c
SRC_C += sdk/component/soc/realtek/8195a/misc/rtl_std_lib/lib_rtlstd/rtl_eabi_cast_ram.c
SRC_C += sdk/component/soc/realtek/8195a/misc/rtl_std_lib/lib_rtlstd/rtl_math_ram.c
ifdef SWO_DEBUG_OUT_ENA
INCLUDES += sdk/component/soc/realtek/8195a/misc/rtl_std_lib/lib_rtlstd
SRC_C += sdk/component/soc/realtek/8195a/misc/rtl_std_lib/lib_rtlstd/swo.c
endif
#if +- nostdlib..
ifndef USE_GCC_LIB
SRC_C += sdk/component/soc/realtek/8195a/misc/rtl_std_lib/lib_rtlstd/ram_pvvx_libc.c