mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-08-21 06:23:35 +08:00
[bsp] modify the uart_driver to fit the new rt-thread serial device driver framework. Modify the template.uvproj for auto generate MDK project.
This commit is contained in:
@@ -20,8 +20,9 @@
|
||||
void rt_init_thread_entry(void *parameter)
|
||||
{
|
||||
/* Initialization RT-Thread Components */
|
||||
#ifdef RT_USING_COMPONENTS_INIT
|
||||
rt_components_init();
|
||||
#ifdef RT_USING_FINSH
|
||||
finsh_set_device(RT_CONSOLE_DEVICE_NAME);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -15,14 +15,14 @@
|
||||
|
||||
#include <rthw.h>
|
||||
#include <rtthread.h>
|
||||
#include <components.h>
|
||||
|
||||
#include "board.h"
|
||||
#include "drv_uart.h"
|
||||
#include "interrupt.h"
|
||||
#include "sysctl.h"
|
||||
#include "systick.h"
|
||||
#include "fpu.h"
|
||||
|
||||
#include "driverlib/interrupt.h"
|
||||
#include "driverlib/sysctl.h"
|
||||
#include "driverlib/systick.h"
|
||||
#include "driverlib/fpu.h"
|
||||
#include "driverlib/rom_map.h"
|
||||
|
||||
#define SYS_CLOCK_DEFAULT 120000000
|
||||
@@ -56,16 +56,15 @@ void SysTick_Handler(void)
|
||||
extern void PendSV_Handler(void);
|
||||
extern void HardFault_Handler(void);
|
||||
|
||||
|
||||
/**
|
||||
* This function will initial LPC40xx board.
|
||||
*/
|
||||
void rt_hw_board_init()
|
||||
{
|
||||
IntRegister(FAULT_HARD, HardFault_Handler);
|
||||
IntRegister(FAULT_PENDSV, PendSV_Handler);
|
||||
IntRegister(FAULT_SYSTICK, SysTick_Handler);
|
||||
|
||||
IntRegister(FAULT_PENDSV, PendSV_Handler);
|
||||
IntRegister(FAULT_SYSTICK, SysTick_Handler);
|
||||
|
||||
//
|
||||
// Enable lazy stacking for interrupt handlers. This allows floating-point
|
||||
// instructions to be used within interrupt handlers, but at the expense of
|
||||
@@ -78,23 +77,24 @@ void rt_hw_board_init()
|
||||
// TODO: The SYSCTL_XTAL_ value must be changed to match the value of the
|
||||
// crystal on your board.
|
||||
//
|
||||
SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480),
|
||||
SYS_CLOCK_DEFAULT);
|
||||
SysClock = MAP_SysCtlClockFreqSet(
|
||||
(SYSCTL_XTAL_25MHZ | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480),
|
||||
SYS_CLOCK_DEFAULT);
|
||||
|
||||
MAP_SysTickDisable();
|
||||
MAP_SysTickDisable();
|
||||
MAP_SysTickPeriodSet(SysClock/ RT_TICK_PER_SECOND - 1);
|
||||
MAP_SysTickIntEnable();
|
||||
MAP_SysTickEnable();
|
||||
|
||||
|
||||
/* set pend exception priority */
|
||||
//IntPrioritySet(FAULT_PENDSV, (1 << __NVIC_PRIO_BITS) - 1);
|
||||
/*init uart device*/
|
||||
|
||||
IntPrioritySet(FAULT_PENDSV, (1 << 5) - 1);
|
||||
|
||||
/*init uart device*/
|
||||
rt_hw_uart_init();
|
||||
//redirect RTT stdio to CONSOLE device
|
||||
rt_console_set_device(RT_CONSOLE_DEVICE_NAME);
|
||||
//
|
||||
// Enable interrupts to the processor.
|
||||
//
|
||||
MAP_IntMasterEnable();
|
||||
MAP_IntMasterEnable();
|
||||
}
|
||||
|
||||
@@ -20,41 +20,83 @@
|
||||
#include "board.h"
|
||||
//#include <components.h>
|
||||
|
||||
#include "sysctl.h"
|
||||
#include "gpio.h"
|
||||
#include "uart.h"
|
||||
#include "hw_memmap.h"
|
||||
#include "pin_map.h"
|
||||
#include "interrupt.h"
|
||||
#include "rom.h"
|
||||
#include "rom_map.h"
|
||||
#include "inc/hw_memmap.h"
|
||||
#include "driverlib/sysctl.h"
|
||||
#include "driverlib/gpio.h"
|
||||
#include "driverlib/uart.h"
|
||||
#include "driverlib/pin_map.h"
|
||||
#include "driverlib/interrupt.h"
|
||||
#include "driverlib/rom_map.h"
|
||||
typedef struct hw_uart_device
|
||||
{
|
||||
uint32_t hw_base; // base address
|
||||
}hw_uart_t;
|
||||
|
||||
#define GetHwUartPtr(serial) ((hw_uart_t*)(serial->parent.user_data))
|
||||
#define mUartGetHwPtr(serial) ((hw_uart_t*)(serial->parent.user_data))
|
||||
|
||||
static rt_err_t hw_configure(struct rt_serial_device *serial, struct serial_configure *cfg)
|
||||
{
|
||||
uint32_t config;
|
||||
hw_uart_t* uart;
|
||||
RT_ASSERT(serial != RT_NULL);
|
||||
uart = GetHwUartPtr(serial);
|
||||
MAP_UARTDisable(uart->hw_base);
|
||||
/* Initialize UART Configuration parameter structure to default state:
|
||||
* Baudrate = 115200 bps
|
||||
* 8 data bit
|
||||
* 1 Stop bit
|
||||
* None parity
|
||||
*/
|
||||
// Initialize UART0 peripheral with given to corresponding parameter
|
||||
MAP_UARTConfigSetExpClk(uart->hw_base, SysClock, cfg->baud_rate,
|
||||
(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE));
|
||||
MAP_UARTFIFOEnable(uart->hw_base);
|
||||
uart = mUartGetHwPtr(serial);
|
||||
|
||||
MAP_UARTDisable(uart->hw_base);
|
||||
// build UART Configuration parameter structure
|
||||
switch(cfg->data_bits)
|
||||
{
|
||||
case DATA_BITS_9:
|
||||
// enable 9bit address mode and set DATA_BIT_8
|
||||
MAP_UART9BitEnable(uart->hw_base);
|
||||
case DATA_BITS_8:
|
||||
config |= UART_CONFIG_WLEN_8;
|
||||
break;
|
||||
case DATA_BITS_7:
|
||||
config |= UART_CONFIG_WLEN_7;
|
||||
break;
|
||||
case DATA_BITS_6:
|
||||
config |= UART_CONFIG_WLEN_6;
|
||||
break;
|
||||
case DATA_BITS_5:
|
||||
config |= UART_CONFIG_WLEN_5;
|
||||
break;
|
||||
default:
|
||||
RT_ASSERT(0);
|
||||
break;
|
||||
}
|
||||
switch(cfg->parity)
|
||||
{
|
||||
case PARITY_ODD:
|
||||
config |= UART_CONFIG_PAR_ODD;
|
||||
break;
|
||||
case PARITY_EVEN:
|
||||
config |= UART_CONFIG_PAR_EVEN;
|
||||
break;
|
||||
case PARITY_NONE:
|
||||
config |= UART_CONFIG_PAR_NONE;
|
||||
break;
|
||||
default:
|
||||
RT_ASSERT(0);
|
||||
break;
|
||||
}
|
||||
switch(cfg->stop_bits)
|
||||
{
|
||||
case STOP_BITS_1:
|
||||
config |= UART_CONFIG_STOP_ONE;
|
||||
break;
|
||||
case STOP_BITS_2:
|
||||
config |= UART_CONFIG_STOP_TWO;
|
||||
break;
|
||||
default:
|
||||
RT_ASSERT(0);
|
||||
break;
|
||||
}
|
||||
|
||||
// Initialize UART0 peripheral with given to corresponding parameter
|
||||
MAP_UARTConfigSetExpClk(uart->hw_base, SysClock, cfg->baud_rate, config);
|
||||
MAP_UARTFIFOEnable(uart->hw_base);
|
||||
|
||||
//
|
||||
// Enable the UART.
|
||||
//
|
||||
MAP_UARTEnable(uart->hw_base);
|
||||
return RT_EOK;
|
||||
}
|
||||
@@ -63,7 +105,7 @@ static rt_err_t hw_control(struct rt_serial_device *serial, int cmd, void *arg)
|
||||
{
|
||||
hw_uart_t* uart;
|
||||
RT_ASSERT(serial != RT_NULL);
|
||||
uart = GetHwUartPtr(serial);
|
||||
uart = mUartGetHwPtr(serial);
|
||||
|
||||
switch (cmd)
|
||||
{
|
||||
@@ -84,7 +126,7 @@ static int hw_putc(struct rt_serial_device *serial, char c)
|
||||
{
|
||||
hw_uart_t* uart;
|
||||
RT_ASSERT(serial != RT_NULL);
|
||||
uart = GetHwUartPtr(serial);
|
||||
uart = mUartGetHwPtr(serial);
|
||||
|
||||
MAP_UARTCharPut(uart->hw_base, *((uint8_t *)&c));
|
||||
return 1;
|
||||
@@ -94,7 +136,7 @@ static int hw_getc(struct rt_serial_device *serial)
|
||||
{
|
||||
hw_uart_t* uart;
|
||||
RT_ASSERT(serial != RT_NULL);
|
||||
uart = GetHwUartPtr(serial);
|
||||
uart = mUartGetHwPtr(serial);
|
||||
|
||||
return MAP_UARTCharGetNonBlocking(uart->hw_base);
|
||||
}
|
||||
@@ -110,7 +152,6 @@ static const struct rt_uart_ops hw_uart_ops =
|
||||
#if defined(RT_USING_UART0)
|
||||
/* UART0 device driver structure */
|
||||
struct rt_serial_device serial0;
|
||||
struct serial_ringbuffer uart0_int_rx_buf;
|
||||
hw_uart_t uart0 =
|
||||
{
|
||||
UART0_BASE,
|
||||
@@ -118,21 +159,20 @@ hw_uart_t uart0 =
|
||||
|
||||
void UART0_IRQHandler(void)
|
||||
{
|
||||
uint32_t intsrc;
|
||||
uint32_t intsrc;
|
||||
hw_uart_t *uart = &uart0;
|
||||
|
||||
/* enter interrupt */
|
||||
rt_interrupt_enter();
|
||||
|
||||
/* Determine the interrupt source */
|
||||
intsrc = UARTIntStatus(uart->hw_base, true);
|
||||
intsrc = MAP_UARTIntStatus(uart->hw_base, true);
|
||||
|
||||
// Receive Data Available or Character time-out
|
||||
if (intsrc & (UART_INT_RX | UART_INT_RT))
|
||||
{
|
||||
UARTIntClear(UART0_BASE, intsrc);
|
||||
rt_hw_serial_isr(&serial0);
|
||||
|
||||
MAP_UARTIntClear(uart->hw_base, intsrc);
|
||||
rt_hw_serial_isr(&serial0, RT_SERIAL_EVENT_RX_IND);
|
||||
}
|
||||
|
||||
/* leave interrupt */
|
||||
@@ -144,57 +184,38 @@ int rt_hw_uart_init(void)
|
||||
{
|
||||
hw_uart_t* uart;
|
||||
struct serial_configure config;
|
||||
|
||||
#ifdef RT_USING_UART0
|
||||
uart = &uart0;
|
||||
|
||||
config.baud_rate = BAUD_RATE_115200;
|
||||
config.bit_order = BIT_ORDER_LSB;
|
||||
config.data_bits = DATA_BITS_8;
|
||||
config.parity = PARITY_NONE;
|
||||
config.stop_bits = STOP_BITS_1;
|
||||
config.invert = NRZ_NORMAL;
|
||||
|
||||
config.bufsz = RT_SERIAL_RB_BUFSZ;
|
||||
|
||||
#ifdef RT_USING_UART0
|
||||
uart = &uart0;
|
||||
serial0.ops = &hw_uart_ops;
|
||||
serial0.int_rx = &uart0_int_rx_buf;
|
||||
serial0.config = config;
|
||||
|
||||
//
|
||||
// Enable the peripherals used by this example.
|
||||
// The UART itself needs to be enabled, as well as the GPIO port
|
||||
// containing the pins that will be used.
|
||||
//
|
||||
|
||||
MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
|
||||
|
||||
//
|
||||
// Configure the GPIO pin muxing for the UART function.
|
||||
// This is only necessary if your part supports GPIO pin function muxing.
|
||||
// Study the data sheet to see which functions are allocated per pin.
|
||||
// TODO: change this to select the port/pin you are using
|
||||
//
|
||||
MAP_GPIOPinConfigure(GPIO_PA0_U0RX);
|
||||
MAP_GPIOPinConfigure(GPIO_PA1_U0TX);
|
||||
|
||||
//
|
||||
// Since GPIO A0 and A1 are used for the UART function, they must be
|
||||
// configured for use as a peripheral function (instead of GPIO).
|
||||
// TODO: change this to match the port/pin you are using
|
||||
//
|
||||
|
||||
MAP_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);
|
||||
|
||||
MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
|
||||
|
||||
/* preemption = 1, sub-priority = 1 */
|
||||
//IntPrioritySet(INT_UART0, ((0x01 << 3) | 0x01));
|
||||
IntPrioritySet(INT_UART0, ((0x01 << 5) | 0x01));
|
||||
|
||||
/* Enable Interrupt for UART channel */
|
||||
UARTIntRegister(uart->hw_base, UART0_IRQHandler);
|
||||
MAP_IntEnable(INT_UART0);
|
||||
MAP_UARTEnable(uart->hw_base);
|
||||
UARTIntRegister(uart->hw_base, UART0_IRQHandler);
|
||||
MAP_IntEnable(INT_UART0);
|
||||
MAP_UARTEnable(uart->hw_base);
|
||||
|
||||
/* register UART0 device */
|
||||
rt_hw_serial_register(&serial0, "uart0",
|
||||
RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX | RT_DEVICE_FLAG_STREAM,
|
||||
RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX,
|
||||
uart);
|
||||
#endif
|
||||
return 0;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,35 +7,38 @@
|
||||
|
||||
<Targets>
|
||||
<Target>
|
||||
<TargetName>rt-thread_lm4f232</TargetName>
|
||||
<TargetName>RT-Thread TM4C129X</TargetName>
|
||||
<ToolsetNumber>0x4</ToolsetNumber>
|
||||
<ToolsetName>ARM-ADS</ToolsetName>
|
||||
<TargetOption>
|
||||
<TargetCommonOption>
|
||||
<Device>LM4F232H5QD</Device>
|
||||
<Device>TM4C129XNCZAD</Device>
|
||||
<Vendor>Texas Instruments</Vendor>
|
||||
<Cpu>IRAM(0x20000000-0x20007FFF) IROM(0-0x3FFFF) CLOCK(16000000) CPUTYPE("Cortex-M4") FPU2</Cpu>
|
||||
<PackID>Keil.TM4C_DFP.1.0.0</PackID>
|
||||
<PackURL>http://www.keil.com/pack/</PackURL>
|
||||
<Cpu>IROM(0x00000000,0x100000) IRAM(0x20000000,0x040000) CPUTYPE("Cortex-M4") FPU2 CLOCK(120000000) ELITTLE</Cpu>
|
||||
<FlashUtilSpec></FlashUtilSpec>
|
||||
<StartupFile>"STARTUP\Luminary\Startup.s" ("Luminary Startup Code")</StartupFile>
|
||||
<FlashDriverDll>UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_256 -FS00 -FL040000)</FlashDriverDll>
|
||||
<DeviceId>5931</DeviceId>
|
||||
<RegisterFile>LM4Fxxxx.H</RegisterFile>
|
||||
<StartupFile></StartupFile>
|
||||
<FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0TM4C129_1024 -FS00 -FL0100000 -FP0($$Device:TM4C129XNCZAD$Flash\TM4C129_1024.FLM))</FlashDriverDll>
|
||||
<DeviceId>7096</DeviceId>
|
||||
<RegisterFile>$$Device:TM4C129XNCZAD$Device\Include\TM4C129\TM4C129.h</RegisterFile>
|
||||
<MemoryEnv></MemoryEnv>
|
||||
<Cmp></Cmp>
|
||||
<Asm></Asm>
|
||||
<Linker></Linker>
|
||||
<OHString></OHString>
|
||||
<InfinionOptionDll></InfinionOptionDll>
|
||||
<SLE66CMisc></SLE66CMisc>
|
||||
<SLE66CMisc>-DTM4C129XNCZAD</SLE66CMisc>
|
||||
<SLE66AMisc></SLE66AMisc>
|
||||
<SLE66LinkerMisc></SLE66LinkerMisc>
|
||||
<SFDFile>SFD\Luminary\LM4F232H5QD.SFR</SFDFile>
|
||||
<SFDFile>$$Device:TM4C129XNCZAD$SVD\TM4C129\TM4C129XNCZAD.svd</SFDFile>
|
||||
<bCustSvd>0</bCustSvd>
|
||||
<UseEnv>0</UseEnv>
|
||||
<BinPath></BinPath>
|
||||
<IncludePath></IncludePath>
|
||||
<LibPath></LibPath>
|
||||
<RegisterFilePath>Luminary\</RegisterFilePath>
|
||||
<DBRegisterFilePath>Luminary\</DBRegisterFilePath>
|
||||
<RegisterFilePath></RegisterFilePath>
|
||||
<DBRegisterFilePath></DBRegisterFilePath>
|
||||
<TargetStatus>
|
||||
<Error>0</Error>
|
||||
<ExitCodeStop>0</ExitCodeStop>
|
||||
@@ -44,13 +47,13 @@
|
||||
<InvalidFlash>1</InvalidFlash>
|
||||
</TargetStatus>
|
||||
<OutputDirectory>.\build\</OutputDirectory>
|
||||
<OutputName>project</OutputName>
|
||||
<OutputName>rtthread-tm4c</OutputName>
|
||||
<CreateExecutable>1</CreateExecutable>
|
||||
<CreateLib>0</CreateLib>
|
||||
<CreateHexFile>0</CreateHexFile>
|
||||
<DebugInformation>1</DebugInformation>
|
||||
<BrowseInformation>1</BrowseInformation>
|
||||
<ListingPath>.\build\</ListingPath>
|
||||
<BrowseInformation>0</BrowseInformation>
|
||||
<ListingPath>.\</ListingPath>
|
||||
<HexFormatSelection>1</HexFormatSelection>
|
||||
<Merge32K>0</Merge32K>
|
||||
<CreateBatchFile>0</CreateBatchFile>
|
||||
@@ -61,6 +64,8 @@
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopU1X>0</nStopU1X>
|
||||
<nStopU2X>0</nStopU2X>
|
||||
</BeforeCompile>
|
||||
<BeforeMake>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
@@ -69,6 +74,8 @@
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopB1X>0</nStopB1X>
|
||||
<nStopB2X>0</nStopB2X>
|
||||
</BeforeMake>
|
||||
<AfterMake>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
@@ -95,6 +102,7 @@
|
||||
<StopOnExitCode>3</StopOnExitCode>
|
||||
<CustomArgument></CustomArgument>
|
||||
<IncludeLibraryModules></IncludeLibraryModules>
|
||||
<ComprImg>1</ComprImg>
|
||||
</CommonProperty>
|
||||
<DllOption>
|
||||
<SimDllName>SARMCM3.DLL</SimDllName>
|
||||
@@ -124,6 +132,7 @@
|
||||
<RestoreFunctions>1</RestoreFunctions>
|
||||
<RestoreToolbox>1</RestoreToolbox>
|
||||
<LimitSpeedToRealTime>0</LimitSpeedToRealTime>
|
||||
<RestoreSysVw>1</RestoreSysVw>
|
||||
</Simulator>
|
||||
<Target>
|
||||
<UseTarget>1</UseTarget>
|
||||
@@ -134,9 +143,12 @@
|
||||
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
|
||||
<RestoreFunctions>0</RestoreFunctions>
|
||||
<RestoreToolbox>1</RestoreToolbox>
|
||||
<RestoreTracepoints>1</RestoreTracepoints>
|
||||
<RestoreSysVw>1</RestoreSysVw>
|
||||
<UsePdscDebugDescription>1</UsePdscDebugDescription>
|
||||
</Target>
|
||||
<RunDebugAfterBuild>0</RunDebugAfterBuild>
|
||||
<TargetSelection>4</TargetSelection>
|
||||
<TargetSelection>3</TargetSelection>
|
||||
<SimDlls>
|
||||
<CpuDll></CpuDll>
|
||||
<CpuDllArguments></CpuDllArguments>
|
||||
@@ -158,13 +170,18 @@
|
||||
<UseTargetDll>1</UseTargetDll>
|
||||
<UseExternalTool>0</UseExternalTool>
|
||||
<RunIndependent>0</RunIndependent>
|
||||
<UpdateFlashBeforeDebugging>0</UpdateFlashBeforeDebugging>
|
||||
<UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
|
||||
<Capability>1</Capability>
|
||||
<DriverSelection>4097</DriverSelection>
|
||||
<DriverSelection>4096</DriverSelection>
|
||||
</Flash1>
|
||||
<Flash2>BIN\lmidk-agdi.dll</Flash2>
|
||||
<bUseTDR>1</bUseTDR>
|
||||
<Flash2>BIN\UL2CM3.DLL</Flash2>
|
||||
<Flash3>"" ()</Flash3>
|
||||
<Flash4></Flash4>
|
||||
<pFcarmOut></pFcarmOut>
|
||||
<pFcarmGrp></pFcarmGrp>
|
||||
<pFcArmRoot></pFcArmRoot>
|
||||
<FcArmLst>0</FcArmLst>
|
||||
</Utilities>
|
||||
<TargetArmAds>
|
||||
<ArmAdsMisc>
|
||||
@@ -208,7 +225,7 @@
|
||||
<hadIRAM2>0</hadIRAM2>
|
||||
<hadIROM2>0</hadIROM2>
|
||||
<StupSel>8</StupSel>
|
||||
<useUlib>1</useUlib>
|
||||
<useUlib>0</useUlib>
|
||||
<EndSel>0</EndSel>
|
||||
<uLtcg>0</uLtcg>
|
||||
<RoSelD>3</RoSelD>
|
||||
@@ -264,12 +281,12 @@
|
||||
<IRAM>
|
||||
<Type>0</Type>
|
||||
<StartAddress>0x20000000</StartAddress>
|
||||
<Size>0x8000</Size>
|
||||
<Size>0x40000</Size>
|
||||
</IRAM>
|
||||
<IROM>
|
||||
<Type>1</Type>
|
||||
<StartAddress>0x0</StartAddress>
|
||||
<Size>0x40000</Size>
|
||||
<Size>0x100000</Size>
|
||||
</IROM>
|
||||
<XRAM>
|
||||
<Type>0</Type>
|
||||
@@ -294,7 +311,7 @@
|
||||
<OCR_RVCT4>
|
||||
<Type>1</Type>
|
||||
<StartAddress>0x0</StartAddress>
|
||||
<Size>0x40000</Size>
|
||||
<Size>0x100000</Size>
|
||||
</OCR_RVCT4>
|
||||
<OCR_RVCT5>
|
||||
<Type>1</Type>
|
||||
@@ -319,7 +336,7 @@
|
||||
<OCR_RVCT9>
|
||||
<Type>0</Type>
|
||||
<StartAddress>0x20000000</StartAddress>
|
||||
<Size>0x8000</Size>
|
||||
<Size>0x40000</Size>
|
||||
</OCR_RVCT9>
|
||||
<OCR_RVCT10>
|
||||
<Type>0</Type>
|
||||
@@ -334,14 +351,17 @@
|
||||
<Optim>1</Optim>
|
||||
<oTime>0</oTime>
|
||||
<SplitLS>0</SplitLS>
|
||||
<OneElfS>1</OneElfS>
|
||||
<OneElfS>0</OneElfS>
|
||||
<Strict>0</Strict>
|
||||
<EnumInt>0</EnumInt>
|
||||
<PlainCh>0</PlainCh>
|
||||
<Ropi>0</Ropi>
|
||||
<Rwpi>0</Rwpi>
|
||||
<wLevel>0</wLevel>
|
||||
<wLevel>2</wLevel>
|
||||
<uThumb>0</uThumb>
|
||||
<uSurpInc>0</uSurpInc>
|
||||
<uC99>0</uC99>
|
||||
<useXO>0</useXO>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
@@ -357,6 +377,8 @@
|
||||
<SplitLS>0</SplitLS>
|
||||
<SwStkChk>0</SwStkChk>
|
||||
<NoWarn>0</NoWarn>
|
||||
<uSurpInc>0</uSurpInc>
|
||||
<useXO>0</useXO>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
@@ -372,8 +394,9 @@
|
||||
<RepFail>1</RepFail>
|
||||
<useFile>0</useFile>
|
||||
<TextAddressRange>0x00000000</TextAddressRange>
|
||||
<DataAddressRange>0x20000000</DataAddressRange>
|
||||
<ScatterFile></ScatterFile>
|
||||
<DataAddressRange>0x00000000</DataAddressRange>
|
||||
<pXoBase></pXoBase>
|
||||
<ScatterFile>tm4c_rom.sct</ScatterFile>
|
||||
<IncludeLibs></IncludeLibs>
|
||||
<IncludeLibsPath></IncludeLibsPath>
|
||||
<Misc></Misc>
|
||||
|
||||
Reference in New Issue
Block a user