提交 f74d7f16 编写于 作者: A ArdaFu

[bsp] modify the uart_driver to fit the new rt-thread serial device driver...

[bsp] modify the uart_driver to fit the new rt-thread serial device driver framework. Modify the template.uvproj for auto generate MDK project.
上级 3a1c1c45
...@@ -20,8 +20,9 @@ ...@@ -20,8 +20,9 @@
void rt_init_thread_entry(void *parameter) void rt_init_thread_entry(void *parameter)
{ {
/* Initialization RT-Thread Components */ /* Initialization RT-Thread Components */
#ifdef RT_USING_COMPONENTS_INIT
rt_components_init(); rt_components_init();
#ifdef RT_USING_FINSH
finsh_set_device(RT_CONSOLE_DEVICE_NAME);
#endif #endif
} }
......
...@@ -15,14 +15,14 @@ ...@@ -15,14 +15,14 @@
#include <rthw.h> #include <rthw.h>
#include <rtthread.h> #include <rtthread.h>
#include <components.h>
#include "board.h" #include "board.h"
#include "drv_uart.h" #include "drv_uart.h"
#include "interrupt.h"
#include "sysctl.h" #include "driverlib/interrupt.h"
#include "systick.h" #include "driverlib/sysctl.h"
#include "fpu.h" #include "driverlib/systick.h"
#include "driverlib/fpu.h"
#include "driverlib/rom_map.h" #include "driverlib/rom_map.h"
#define SYS_CLOCK_DEFAULT 120000000 #define SYS_CLOCK_DEFAULT 120000000
...@@ -56,16 +56,15 @@ void SysTick_Handler(void) ...@@ -56,16 +56,15 @@ void SysTick_Handler(void)
extern void PendSV_Handler(void); extern void PendSV_Handler(void);
extern void HardFault_Handler(void); extern void HardFault_Handler(void);
/** /**
* This function will initial LPC40xx board. * This function will initial LPC40xx board.
*/ */
void rt_hw_board_init() void rt_hw_board_init()
{ {
IntRegister(FAULT_HARD, HardFault_Handler); IntRegister(FAULT_HARD, HardFault_Handler);
IntRegister(FAULT_PENDSV, PendSV_Handler); IntRegister(FAULT_PENDSV, PendSV_Handler);
IntRegister(FAULT_SYSTICK, SysTick_Handler); IntRegister(FAULT_SYSTICK, SysTick_Handler);
// //
// Enable lazy stacking for interrupt handlers. This allows floating-point // Enable lazy stacking for interrupt handlers. This allows floating-point
// instructions to be used within interrupt handlers, but at the expense of // instructions to be used within interrupt handlers, but at the expense of
...@@ -78,23 +77,24 @@ void rt_hw_board_init() ...@@ -78,23 +77,24 @@ void rt_hw_board_init()
// TODO: The SYSCTL_XTAL_ value must be changed to match the value of the // TODO: The SYSCTL_XTAL_ value must be changed to match the value of the
// crystal on your board. // crystal on your board.
// //
SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480), SysClock = MAP_SysCtlClockFreqSet(
SYS_CLOCK_DEFAULT); (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_SysTickPeriodSet(SysClock/ RT_TICK_PER_SECOND - 1);
MAP_SysTickIntEnable(); MAP_SysTickIntEnable();
MAP_SysTickEnable(); MAP_SysTickEnable();
/* set pend exception priority */ /* set pend exception priority */
//IntPrioritySet(FAULT_PENDSV, (1 << __NVIC_PRIO_BITS) - 1); IntPrioritySet(FAULT_PENDSV, (1 << 5) - 1);
/*init uart device*/
/*init uart device*/
rt_hw_uart_init(); rt_hw_uart_init();
//redirect RTT stdio to CONSOLE device
rt_console_set_device(RT_CONSOLE_DEVICE_NAME); rt_console_set_device(RT_CONSOLE_DEVICE_NAME);
// //
// Enable interrupts to the processor. // Enable interrupts to the processor.
// //
MAP_IntMasterEnable(); MAP_IntMasterEnable();
} }
...@@ -20,41 +20,83 @@ ...@@ -20,41 +20,83 @@
#include "board.h" #include "board.h"
//#include <components.h> //#include <components.h>
#include "sysctl.h" #include "inc/hw_memmap.h"
#include "gpio.h" #include "driverlib/sysctl.h"
#include "uart.h" #include "driverlib/gpio.h"
#include "hw_memmap.h" #include "driverlib/uart.h"
#include "pin_map.h" #include "driverlib/pin_map.h"
#include "interrupt.h" #include "driverlib/interrupt.h"
#include "rom.h" #include "driverlib/rom_map.h"
#include "rom_map.h"
typedef struct hw_uart_device typedef struct hw_uart_device
{ {
uint32_t hw_base; // base address uint32_t hw_base; // base address
}hw_uart_t; }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) static rt_err_t hw_configure(struct rt_serial_device *serial, struct serial_configure *cfg)
{ {
uint32_t config;
hw_uart_t* uart; hw_uart_t* uart;
RT_ASSERT(serial != RT_NULL); RT_ASSERT(serial != RT_NULL);
uart = GetHwUartPtr(serial); uart = mUartGetHwPtr(serial);
MAP_UARTDisable(uart->hw_base); MAP_UARTDisable(uart->hw_base);
/* Initialize UART Configuration parameter structure to default state: // build UART Configuration parameter structure
* Baudrate = 115200 bps switch(cfg->data_bits)
* 8 data bit {
* 1 Stop bit case DATA_BITS_9:
* None parity // enable 9bit address mode and set DATA_BIT_8
*/ MAP_UART9BitEnable(uart->hw_base);
// Initialize UART0 peripheral with given to corresponding parameter case DATA_BITS_8:
MAP_UARTConfigSetExpClk(uart->hw_base, SysClock, cfg->baud_rate, config |= UART_CONFIG_WLEN_8;
(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE)); break;
MAP_UARTFIFOEnable(uart->hw_base); 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. // Enable the UART.
//
MAP_UARTEnable(uart->hw_base); MAP_UARTEnable(uart->hw_base);
return RT_EOK; return RT_EOK;
} }
...@@ -63,7 +105,7 @@ static rt_err_t hw_control(struct rt_serial_device *serial, int cmd, void *arg) ...@@ -63,7 +105,7 @@ static rt_err_t hw_control(struct rt_serial_device *serial, int cmd, void *arg)
{ {
hw_uart_t* uart; hw_uart_t* uart;
RT_ASSERT(serial != RT_NULL); RT_ASSERT(serial != RT_NULL);
uart = GetHwUartPtr(serial); uart = mUartGetHwPtr(serial);
switch (cmd) switch (cmd)
{ {
...@@ -84,7 +126,7 @@ static int hw_putc(struct rt_serial_device *serial, char c) ...@@ -84,7 +126,7 @@ static int hw_putc(struct rt_serial_device *serial, char c)
{ {
hw_uart_t* uart; hw_uart_t* uart;
RT_ASSERT(serial != RT_NULL); RT_ASSERT(serial != RT_NULL);
uart = GetHwUartPtr(serial); uart = mUartGetHwPtr(serial);
MAP_UARTCharPut(uart->hw_base, *((uint8_t *)&c)); MAP_UARTCharPut(uart->hw_base, *((uint8_t *)&c));
return 1; return 1;
...@@ -94,7 +136,7 @@ static int hw_getc(struct rt_serial_device *serial) ...@@ -94,7 +136,7 @@ static int hw_getc(struct rt_serial_device *serial)
{ {
hw_uart_t* uart; hw_uart_t* uart;
RT_ASSERT(serial != RT_NULL); RT_ASSERT(serial != RT_NULL);
uart = GetHwUartPtr(serial); uart = mUartGetHwPtr(serial);
return MAP_UARTCharGetNonBlocking(uart->hw_base); return MAP_UARTCharGetNonBlocking(uart->hw_base);
} }
...@@ -110,7 +152,6 @@ static const struct rt_uart_ops hw_uart_ops = ...@@ -110,7 +152,6 @@ static const struct rt_uart_ops hw_uart_ops =
#if defined(RT_USING_UART0) #if defined(RT_USING_UART0)
/* UART0 device driver structure */ /* UART0 device driver structure */
struct rt_serial_device serial0; struct rt_serial_device serial0;
struct serial_ringbuffer uart0_int_rx_buf;
hw_uart_t uart0 = hw_uart_t uart0 =
{ {
UART0_BASE, UART0_BASE,
...@@ -118,21 +159,20 @@ hw_uart_t uart0 = ...@@ -118,21 +159,20 @@ hw_uart_t uart0 =
void UART0_IRQHandler(void) void UART0_IRQHandler(void)
{ {
uint32_t intsrc; uint32_t intsrc;
hw_uart_t *uart = &uart0; hw_uart_t *uart = &uart0;
/* enter interrupt */ /* enter interrupt */
rt_interrupt_enter(); rt_interrupt_enter();
/* Determine the interrupt source */ /* Determine the interrupt source */
intsrc = UARTIntStatus(uart->hw_base, true); intsrc = MAP_UARTIntStatus(uart->hw_base, true);
// Receive Data Available or Character time-out // Receive Data Available or Character time-out
if (intsrc & (UART_INT_RX | UART_INT_RT)) if (intsrc & (UART_INT_RX | UART_INT_RT))
{ {
UARTIntClear(UART0_BASE, intsrc); MAP_UARTIntClear(uart->hw_base, intsrc);
rt_hw_serial_isr(&serial0); rt_hw_serial_isr(&serial0, RT_SERIAL_EVENT_RX_IND);
} }
/* leave interrupt */ /* leave interrupt */
...@@ -144,57 +184,38 @@ int rt_hw_uart_init(void) ...@@ -144,57 +184,38 @@ int rt_hw_uart_init(void)
{ {
hw_uart_t* uart; hw_uart_t* uart;
struct serial_configure config; struct serial_configure config;
#ifdef RT_USING_UART0
uart = &uart0;
config.baud_rate = BAUD_RATE_115200; config.baud_rate = BAUD_RATE_115200;
config.bit_order = BIT_ORDER_LSB; config.bit_order = BIT_ORDER_LSB;
config.data_bits = DATA_BITS_8; config.data_bits = DATA_BITS_8;
config.parity = PARITY_NONE; config.parity = PARITY_NONE;
config.stop_bits = STOP_BITS_1; config.stop_bits = STOP_BITS_1;
config.invert = NRZ_NORMAL; config.invert = NRZ_NORMAL;
config.bufsz = RT_SERIAL_RB_BUFSZ;
#ifdef RT_USING_UART0
uart = &uart0;
serial0.ops = &hw_uart_ops; serial0.ops = &hw_uart_ops;
serial0.int_rx = &uart0_int_rx_buf;
serial0.config = config; 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); 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_PA0_U0RX);
MAP_GPIOPinConfigure(GPIO_PA1_U0TX); 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_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);
MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0); MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
/* preemption = 1, sub-priority = 1 */ /* preemption = 1, sub-priority = 1 */
//IntPrioritySet(INT_UART0, ((0x01 << 3) | 0x01)); IntPrioritySet(INT_UART0, ((0x01 << 5) | 0x01));
/* Enable Interrupt for UART channel */ /* Enable Interrupt for UART channel */
UARTIntRegister(uart->hw_base, UART0_IRQHandler); UARTIntRegister(uart->hw_base, UART0_IRQHandler);
MAP_IntEnable(INT_UART0); MAP_IntEnable(INT_UART0);
MAP_UARTEnable(uart->hw_base); MAP_UARTEnable(uart->hw_base);
/* register UART0 device */ /* register UART0 device */
rt_hw_serial_register(&serial0, "uart0", 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); uart);
#endif #endif
return 0; return 0;
......
此差异已折叠。
...@@ -7,35 +7,38 @@ ...@@ -7,35 +7,38 @@
<Targets> <Targets>
<Target> <Target>
<TargetName>rt-thread_lm4f232</TargetName> <TargetName>RT-Thread TM4C129X</TargetName>
<ToolsetNumber>0x4</ToolsetNumber> <ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName> <ToolsetName>ARM-ADS</ToolsetName>
<TargetOption> <TargetOption>
<TargetCommonOption> <TargetCommonOption>
<Device>LM4F232H5QD</Device> <Device>TM4C129XNCZAD</Device>
<Vendor>Texas Instruments</Vendor> <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> <FlashUtilSpec></FlashUtilSpec>
<StartupFile>"STARTUP\Luminary\Startup.s" ("Luminary Startup Code")</StartupFile> <StartupFile></StartupFile>
<FlashDriverDll>UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_256 -FS00 -FL040000)</FlashDriverDll> <FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0TM4C129_1024 -FS00 -FL0100000 -FP0($$Device:TM4C129XNCZAD$Flash\TM4C129_1024.FLM))</FlashDriverDll>
<DeviceId>5931</DeviceId> <DeviceId>7096</DeviceId>
<RegisterFile>LM4Fxxxx.H</RegisterFile> <RegisterFile>$$Device:TM4C129XNCZAD$Device\Include\TM4C129\TM4C129.h</RegisterFile>
<MemoryEnv></MemoryEnv> <MemoryEnv></MemoryEnv>
<Cmp></Cmp> <Cmp></Cmp>
<Asm></Asm> <Asm></Asm>
<Linker></Linker> <Linker></Linker>
<OHString></OHString> <OHString></OHString>
<InfinionOptionDll></InfinionOptionDll> <InfinionOptionDll></InfinionOptionDll>
<SLE66CMisc></SLE66CMisc> <SLE66CMisc>-DTM4C129XNCZAD</SLE66CMisc>
<SLE66AMisc></SLE66AMisc> <SLE66AMisc></SLE66AMisc>
<SLE66LinkerMisc></SLE66LinkerMisc> <SLE66LinkerMisc></SLE66LinkerMisc>
<SFDFile>SFD\Luminary\LM4F232H5QD.SFR</SFDFile> <SFDFile>$$Device:TM4C129XNCZAD$SVD\TM4C129\TM4C129XNCZAD.svd</SFDFile>
<bCustSvd>0</bCustSvd>
<UseEnv>0</UseEnv> <UseEnv>0</UseEnv>
<BinPath></BinPath> <BinPath></BinPath>
<IncludePath></IncludePath> <IncludePath></IncludePath>
<LibPath></LibPath> <LibPath></LibPath>
<RegisterFilePath>Luminary\</RegisterFilePath> <RegisterFilePath></RegisterFilePath>
<DBRegisterFilePath>Luminary\</DBRegisterFilePath> <DBRegisterFilePath></DBRegisterFilePath>
<TargetStatus> <TargetStatus>
<Error>0</Error> <Error>0</Error>
<ExitCodeStop>0</ExitCodeStop> <ExitCodeStop>0</ExitCodeStop>
...@@ -44,13 +47,13 @@ ...@@ -44,13 +47,13 @@
<InvalidFlash>1</InvalidFlash> <InvalidFlash>1</InvalidFlash>
</TargetStatus> </TargetStatus>
<OutputDirectory>.\build\</OutputDirectory> <OutputDirectory>.\build\</OutputDirectory>
<OutputName>project</OutputName> <OutputName>rtthread-tm4c</OutputName>
<CreateExecutable>1</CreateExecutable> <CreateExecutable>1</CreateExecutable>
<CreateLib>0</CreateLib> <CreateLib>0</CreateLib>
<CreateHexFile>0</CreateHexFile> <CreateHexFile>0</CreateHexFile>
<DebugInformation>1</DebugInformation> <DebugInformation>1</DebugInformation>
<BrowseInformation>1</BrowseInformation> <BrowseInformation>0</BrowseInformation>
<ListingPath>.\build\</ListingPath> <ListingPath>.\</ListingPath>
<HexFormatSelection>1</HexFormatSelection> <HexFormatSelection>1</HexFormatSelection>
<Merge32K>0</Merge32K> <Merge32K>0</Merge32K>
<CreateBatchFile>0</CreateBatchFile> <CreateBatchFile>0</CreateBatchFile>
...@@ -61,6 +64,8 @@ ...@@ -61,6 +64,8 @@
<UserProg2Name></UserProg2Name> <UserProg2Name></UserProg2Name>
<UserProg1Dos16Mode>0</UserProg1Dos16Mode> <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode> <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopU1X>0</nStopU1X>
<nStopU2X>0</nStopU2X>
</BeforeCompile> </BeforeCompile>
<BeforeMake> <BeforeMake>
<RunUserProg1>0</RunUserProg1> <RunUserProg1>0</RunUserProg1>
...@@ -69,6 +74,8 @@ ...@@ -69,6 +74,8 @@
<UserProg2Name></UserProg2Name> <UserProg2Name></UserProg2Name>
<UserProg1Dos16Mode>0</UserProg1Dos16Mode> <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode> <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopB1X>0</nStopB1X>
<nStopB2X>0</nStopB2X>
</BeforeMake> </BeforeMake>
<AfterMake> <AfterMake>
<RunUserProg1>0</RunUserProg1> <RunUserProg1>0</RunUserProg1>
...@@ -95,6 +102,7 @@ ...@@ -95,6 +102,7 @@
<StopOnExitCode>3</StopOnExitCode> <StopOnExitCode>3</StopOnExitCode>
<CustomArgument></CustomArgument> <CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules> <IncludeLibraryModules></IncludeLibraryModules>
<ComprImg>1</ComprImg>
</CommonProperty> </CommonProperty>
<DllOption> <DllOption>
<SimDllName>SARMCM3.DLL</SimDllName> <SimDllName>SARMCM3.DLL</SimDllName>
...@@ -124,6 +132,7 @@ ...@@ -124,6 +132,7 @@
<RestoreFunctions>1</RestoreFunctions> <RestoreFunctions>1</RestoreFunctions>
<RestoreToolbox>1</RestoreToolbox> <RestoreToolbox>1</RestoreToolbox>
<LimitSpeedToRealTime>0</LimitSpeedToRealTime> <LimitSpeedToRealTime>0</LimitSpeedToRealTime>
<RestoreSysVw>1</RestoreSysVw>
</Simulator> </Simulator>
<Target> <Target>
<UseTarget>1</UseTarget> <UseTarget>1</UseTarget>
...@@ -134,9 +143,12 @@ ...@@ -134,9 +143,12 @@
<RestoreMemoryDisplay>1</RestoreMemoryDisplay> <RestoreMemoryDisplay>1</RestoreMemoryDisplay>
<RestoreFunctions>0</RestoreFunctions> <RestoreFunctions>0</RestoreFunctions>
<RestoreToolbox>1</RestoreToolbox> <RestoreToolbox>1</RestoreToolbox>
<RestoreTracepoints>1</RestoreTracepoints>
<RestoreSysVw>1</RestoreSysVw>
<UsePdscDebugDescription>1</UsePdscDebugDescription>
</Target> </Target>
<RunDebugAfterBuild>0</RunDebugAfterBuild> <RunDebugAfterBuild>0</RunDebugAfterBuild>
<TargetSelection>4</TargetSelection> <TargetSelection>3</TargetSelection>
<SimDlls> <SimDlls>
<CpuDll></CpuDll> <CpuDll></CpuDll>
<CpuDllArguments></CpuDllArguments> <CpuDllArguments></CpuDllArguments>
...@@ -158,13 +170,18 @@ ...@@ -158,13 +170,18 @@
<UseTargetDll>1</UseTargetDll> <UseTargetDll>1</UseTargetDll>
<UseExternalTool>0</UseExternalTool> <UseExternalTool>0</UseExternalTool>
<RunIndependent>0</RunIndependent> <RunIndependent>0</RunIndependent>
<UpdateFlashBeforeDebugging>0</UpdateFlashBeforeDebugging> <UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
<Capability>1</Capability> <Capability>1</Capability>
<DriverSelection>4097</DriverSelection> <DriverSelection>4096</DriverSelection>
</Flash1> </Flash1>
<Flash2>BIN\lmidk-agdi.dll</Flash2> <bUseTDR>1</bUseTDR>
<Flash2>BIN\UL2CM3.DLL</Flash2>
<Flash3>"" ()</Flash3> <Flash3>"" ()</Flash3>
<Flash4></Flash4> <Flash4></Flash4>
<pFcarmOut></pFcarmOut>
<pFcarmGrp></pFcarmGrp>
<pFcArmRoot></pFcArmRoot>
<FcArmLst>0</FcArmLst>
</Utilities> </Utilities>
<TargetArmAds> <TargetArmAds>
<ArmAdsMisc> <ArmAdsMisc>
...@@ -208,7 +225,7 @@ ...@@ -208,7 +225,7 @@
<hadIRAM2>0</hadIRAM2> <hadIRAM2>0</hadIRAM2>
<hadIROM2>0</hadIROM2> <hadIROM2>0</hadIROM2>
<StupSel>8</StupSel> <StupSel>8</StupSel>
<useUlib>1</useUlib> <useUlib>0</useUlib>
<EndSel>0</EndSel> <EndSel>0</EndSel>
<uLtcg>0</uLtcg> <uLtcg>0</uLtcg>
<RoSelD>3</RoSelD> <RoSelD>3</RoSelD>
...@@ -264,12 +281,12 @@ ...@@ -264,12 +281,12 @@
<IRAM> <IRAM>
<Type>0</Type> <Type>0</Type>
<StartAddress>0x20000000</StartAddress> <StartAddress>0x20000000</StartAddress>
<Size>0x8000</Size> <Size>0x40000</Size>
</IRAM> </IRAM>
<IROM> <IROM>
<Type>1</Type> <Type>1</Type>
<StartAddress>0x0</StartAddress> <StartAddress>0x0</StartAddress>
<Size>0x40000</Size> <Size>0x100000</Size>
</IROM> </IROM>
<XRAM> <XRAM>
<Type>0</Type> <Type>0</Type>
...@@ -294,7 +311,7 @@ ...@@ -294,7 +311,7 @@
<OCR_RVCT4> <OCR_RVCT4>
<Type>1</Type> <Type>1</Type>
<StartAddress>0x0</StartAddress> <StartAddress>0x0</StartAddress>
<Size>0x40000</Size> <Size>0x100000</Size>
</OCR_RVCT4> </OCR_RVCT4>
<OCR_RVCT5> <OCR_RVCT5>
<Type>1</Type> <Type>1</Type>
...@@ -319,7 +336,7 @@ ...@@ -319,7 +336,7 @@
<OCR_RVCT9> <OCR_RVCT9>
<Type>0</Type> <Type>0</Type>
<StartAddress>0x20000000</StartAddress> <StartAddress>0x20000000</StartAddress>
<Size>0x8000</Size> <Size>0x40000</Size>
</OCR_RVCT9> </OCR_RVCT9>
<OCR_RVCT10> <OCR_RVCT10>
<Type>0</Type> <Type>0</Type>
...@@ -334,14 +351,17 @@ ...@@ -334,14 +351,17 @@
<Optim>1</Optim> <Optim>1</Optim>
<oTime>0</oTime> <oTime>0</oTime>
<SplitLS>0</SplitLS> <SplitLS>0</SplitLS>
<OneElfS>1</OneElfS> <OneElfS>0</OneElfS>
<Strict>0</Strict> <Strict>0</Strict>
<EnumInt>0</EnumInt> <EnumInt>0</EnumInt>
<PlainCh>0</PlainCh> <PlainCh>0</PlainCh>
<Ropi>0</Ropi> <Ropi>0</Ropi>
<Rwpi>0</Rwpi> <Rwpi>0</Rwpi>
<wLevel>0</wLevel> <wLevel>2</wLevel>
<uThumb>0</uThumb> <uThumb>0</uThumb>
<uSurpInc>0</uSurpInc>
<uC99>0</uC99>
<useXO>0</useXO>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
...@@ -357,6 +377,8 @@ ...@@ -357,6 +377,8 @@
<SplitLS>0</SplitLS> <SplitLS>0</SplitLS>
<SwStkChk>0</SwStkChk> <SwStkChk>0</SwStkChk>
<NoWarn>0</NoWarn> <NoWarn>0</NoWarn>
<uSurpInc>0</uSurpInc>
<useXO>0</useXO>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
...@@ -372,8 +394,9 @@ ...@@ -372,8 +394,9 @@
<RepFail>1</RepFail> <RepFail>1</RepFail>
<useFile>0</useFile> <useFile>0</useFile>
<TextAddressRange>0x00000000</TextAddressRange> <TextAddressRange>0x00000000</TextAddressRange>
<DataAddressRange>0x20000000</DataAddressRange> <DataAddressRange>0x00000000</DataAddressRange>
<ScatterFile></ScatterFile> <pXoBase></pXoBase>
<ScatterFile>tm4c_rom.sct</ScatterFile>
<IncludeLibs></IncludeLibs> <IncludeLibs></IncludeLibs>
<IncludeLibsPath></IncludeLibsPath> <IncludeLibsPath></IncludeLibsPath>
<Misc></Misc> <Misc></Misc>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册