From: Kevin Townsend Date: Wed, 3 Aug 2011 19:25:40 +0000 (+0200) Subject: Updated to v0.95 X-Git-Url: https://git.rohieb.name/hackover2013-badge-firmware.git/commitdiff_plain/217c3a59a0fd96a9bce3e2bd5ca58e83fd090664?hp=58846b2511641f41808a89cad57fc4caf6b728ac Updated to v0.95 --- diff --git a/ChangeLog.txt b/ChangeLog.txt index 96d9ba5..f638087 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1,6 +1,23 @@ -v0.9.3 - Ongoing -================ +v0.9.5 - 3 August 2011 +====================== +- Redid the font rendering code to use DotFactory + generated fonts, and update to the latest binary + in the /tools folder. All fonts have been + re-rendered to accomodate the updated code. +- Updated clock values in cpu.c for PLL to match FCCO + range of 156-320MHz +- Changed SCB_PLLCTRL_MULT_* to SCB_PLLCTRL_MSEL_* in + lpc111x.h to match usermanual +- Changed SCB_PLLCTRL_DIV_* SCB_PLLCTRL_PSEL_* in + lpc111x.h to match usermanual +- Added inline version of key functions in ili9328.c, + which increases the code size ~1.3KB but more than + doubles the drawing speed for most drawing functions + by avoiding branch operations and pushing and popping + the stack multiple times. Inline methods can be + toggled with 'ILI9238_USE_INLINE_METHODS'. +- Fixed IOCON_SWDIO_PIO1_3_FUNC_CT32B1_MAT2 in lpc134x.h - Added drawCornerFilled() to drawing.c and LCD CLI - Fixed a nasty bug with 'gpioInterruptEvent' in the gpioSetInterrupt function (core/gpio/gpio.c) diff --git a/Makefile b/Makefile index ef0296a..0da6100 100644 --- a/Makefile +++ b/Makefile @@ -60,7 +60,7 @@ VPATH += drivers/lcd/tft/dialogues OBJS += drawing.o touchscreen.o bmp.o alphanumeric.o OBJS += dejavusans9.o dejavusansbold9.o dejavusanscondensed9.o OBJS += dejavusansmono8.o dejavusansmonobold8.o -OBJS += veramono9.o veramonobold9.o veramono11.o veramonobold11.o +OBJS += verdana9.o verdana14.o verdanabold14.o # LCD Driver (Only one can be included at a time!) OBJS += ILI9328.o diff --git a/build/codelite/LPC1343 Workspace.tags b/build/codelite/LPC1343 Workspace.tags index 0006aac..9773273 100644 Binary files a/build/codelite/LPC1343 Workspace.tags and b/build/codelite/LPC1343 Workspace.tags differ diff --git a/build/codelite/LPC1343 Workspace.workspace.session b/build/codelite/LPC1343 Workspace.workspace.session index 6d56121..3fd69dd 100644 --- a/build/codelite/LPC1343 Workspace.workspace.session +++ b/build/codelite/LPC1343 Workspace.workspace.session @@ -1,24 +1,18 @@ - + - - - - - - - - + + - - + + diff --git a/build/codelite/LPC1343_CodeBase.project b/build/codelite/LPC1343_CodeBase.project index b5f9df1..1deddee 100644 --- a/build/codelite/LPC1343_CodeBase.project +++ b/build/codelite/LPC1343_CodeBase.project @@ -162,6 +162,10 @@ + + + + @@ -175,14 +179,12 @@ - - - - - - - - + + + + + + @@ -283,36 +285,38 @@ + + + + + + + + + - + - + # Make sure that we are using SWD monitor interface SWD - # Set monitor to little endian monitor endian little - # Set monitor speed monitor speed 1000 - # Reset device monitor reset - # Set device ID to LPC1343 monitor flash device = LPC1343 - # Enable flash download monitor flash download = 1 - # Transfer the firmware to the device load "../../firmware.elf" - # Initializing PC and stack pointer monitor reg r13 = (0x00000000) monitor reg pc = (0x00000004) @@ -337,12 +341,12 @@ monitor reg pc = (0x00000004) - + - + @@ -365,14 +369,5 @@ monitor reg pc = (0x00000004) - - - - - - - - - diff --git a/build/crossworks/LPC1343_CodeBase.hzp b/build/crossworks/LPC1343_CodeBase.hzp index 4085d03..36f5af9 100644 --- a/build/crossworks/LPC1343_CodeBase.hzp +++ b/build/crossworks/LPC1343_CodeBase.hzp @@ -219,23 +219,29 @@ - + + - + + - + + - + + + + + + - - - - - + + + @@ -379,5 +385,5 @@ diff --git a/core/cpu/cpu.c b/core/cpu/cpu.c index 4c674f2..10080fc 100644 --- a/core/cpu/cpu.c +++ b/core/cpu/cpu.c @@ -102,24 +102,39 @@ void cpuPllSetup (cpuMultiplier_t multiplier) // Set clock speed switch (multiplier) { + // Fclkout = M * Fclkin = FCCO / (2 * P) + // FCCO should be in the range of 156-320MHz + // (see Table 58 of the LPC1343 usermanual for examples) case CPU_MULTIPLIER_2: - SCB_PLLCTRL = (SCB_PLLCTRL_MULT_2 | (1 << SCB_PLLCTRL_DIV_BIT)); + // Fclkout = 24.0MHz + // FCCO = 2 * 4 * 24 = 192MHz + SCB_PLLCTRL = (SCB_PLLCTRL_MSEL_2 | SCB_PLLCTRL_PSEL_4); break; case CPU_MULTIPLIER_3: - SCB_PLLCTRL = (SCB_PLLCTRL_MULT_3 | (1 << SCB_PLLCTRL_DIV_BIT)); + // Fclkout = 36.0MHz + // FCCO = 2 * 4 * 36 = 288MHz + SCB_PLLCTRL = (SCB_PLLCTRL_MSEL_3 | SCB_PLLCTRL_PSEL_4); break; case CPU_MULTIPLIER_4: - SCB_PLLCTRL = (SCB_PLLCTRL_MULT_4 | (1 << SCB_PLLCTRL_DIV_BIT)); + // Fclkout = 48.0MHz + // FCCO = 2 * 2 * 48 = 192MHz + SCB_PLLCTRL = (SCB_PLLCTRL_MSEL_4 | SCB_PLLCTRL_PSEL_2); break; case CPU_MULTIPLIER_5: - SCB_PLLCTRL = (SCB_PLLCTRL_MULT_5 | (1 << SCB_PLLCTRL_DIV_BIT)); + // Fclkout = 60.0MHz + // FCCO = 2 * 2 * 60 = 240MHz + SCB_PLLCTRL = (SCB_PLLCTRL_MSEL_5 | SCB_PLLCTRL_PSEL_2); break; case CPU_MULTIPLIER_6: - SCB_PLLCTRL = (SCB_PLLCTRL_MULT_6 | (1 << SCB_PLLCTRL_DIV_BIT)); + // Fclkout = 72.0MHz + // FCCO = 2 * 2 * 72 = 288MHz + SCB_PLLCTRL = (SCB_PLLCTRL_MSEL_6 | SCB_PLLCTRL_PSEL_2); break; case CPU_MULTIPLIER_1: default: - SCB_PLLCTRL = (SCB_PLLCTRL_MULT_1 | (1 << SCB_PLLCTRL_DIV_BIT)); + // Fclkout = 12.0MHz + // FCCO = 2 * 8 * 12 = 192MHz + SCB_PLLCTRL = (SCB_PLLCTRL_MSEL_1 | SCB_PLLCTRL_PSEL_8); break; } diff --git a/core/usbcdc/usbcore.c b/core/usbcdc/usbcore.c index fe33aba..0544f6d 100644 --- a/core/usbcdc/usbcore.c +++ b/core/usbcdc/usbcore.c @@ -169,6 +169,7 @@ void USB_StatusOutStage (void) { static inline uint32_t USB_ReqGetStatus (void) { uint32_t n, m; + uint16_t* ep0 = (uint16_t __attribute__((packed)) *)EP0Buf; switch (SetupPacket.bmRequestType.BM.Recipient) { case REQUEST_TO_DEVICE: @@ -176,7 +177,8 @@ static inline uint32_t USB_ReqGetStatus (void) { break; case REQUEST_TO_INTERFACE: if ((USB_Configuration != 0) && (SetupPacket.wIndex.WB.L < USB_NumInterfaces)) { - *((uint16_t __attribute__((packed)) *)EP0Buf) = 0; + //*((uint16_t __attribute__((packed)) *)EP0Buf) = 0; + *ep0 = 0; EP0Data.pData = EP0Buf; } else { return (FALSE); @@ -186,7 +188,8 @@ static inline uint32_t USB_ReqGetStatus (void) { n = SetupPacket.wIndex.WB.L & 0x8F; m = (n & 0x80) ? ((1 << 16) << (n & 0x0F)) : (1 << n); if (((USB_Configuration != 0) || ((n & 0x0F) == 0)) && (USB_EndPointMask & m)) { - *((uint16_t __attribute__((packed)) *)EP0Buf) = (USB_EndPointHalt & m) ? 1 : 0; + // *((uint16_t __attribute__((packed)) *)EP0Buf) = (USB_EndPointHalt & m) ? 1 : 0; + *ep0 = (USB_EndPointHalt & m) ? 1 : 0; EP0Data.pData = EP0Buf; } else { return (FALSE); diff --git a/drivers/lcd/tft/drawing.c b/drivers/lcd/tft/drawing.c index f7b2ab5..fe8956a 100644 --- a/drivers/lcd/tft/drawing.c +++ b/drivers/lcd/tft/drawing.c @@ -73,9 +73,7 @@ void drawSwap(uint32_t a, uint32_t b) /**************************************************************************/ void drawCharBitmap(const uint16_t xPixel, const uint16_t yPixel, uint16_t color, const uint8_t *glyph, uint8_t cols, uint8_t rows) { - uint16_t verticalPage, horizBit, currentY, currentX; - uint16_t indexIntoGlyph; - + uint16_t currentY, currentX, indexIntoGlyph; uint16_t _row, _col, _colPages; // set initial current y diff --git a/drivers/lcd/tft/hw/ILI9325.c b/drivers/lcd/tft/hw/ILI9325.c index 8b0e64a..1e75eca 100644 --- a/drivers/lcd/tft/hw/ILI9325.c +++ b/drivers/lcd/tft/hw/ILI9325.c @@ -50,6 +50,9 @@ #include "core/systick/systick.h" #include "drivers/lcd/tft/touchscreen.h" +// Uncomment this to use faster inline methods, but requires more flash +// #define ILI9235_USE_INLINE_METHODS (1) + static lcdOrientation_t lcdOrientation = LCD_ORIENTATION_PORTRAIT; static lcdProperties_t ili9325Properties = { 240, 320, TRUE, TRUE, TRUE }; @@ -62,6 +65,7 @@ static lcdProperties_t ili9325Properties = { 240, 320, TRUE, TRUE, TRUE }; @brief Causes a brief delay (10 ticks per unit) */ /**************************************************************************/ +#if !defined ILI9235_USE_INLINE_METHODS void ili9325Delay(unsigned int t) { unsigned char t1; @@ -71,12 +75,16 @@ void ili9325Delay(unsigned int t) __asm("nop"); } } +#else +static inline uint32_t ili9325Delay(unsigned int t) { unsigned char t1; while(t--) for ( t1=10; t1 > 0; t1-- ) { __asm("nop"); } } +#endif /**************************************************************************/ /*! @brief Writes the supplied 16-bit command using an 8-bit interface */ /**************************************************************************/ +#if !defined ILI9238_USE_INLINE_METHODS void ili9325WriteCmd(uint16_t command) { // Compiled with -Os on GCC 4.4 this works out to 25 cycles @@ -94,12 +102,16 @@ void ili9325WriteCmd(uint16_t command) CLR_WR; SET_WR_CS; // Saves 7 commands compared to "SET_WR; SET_CS;" } +#else +static inline void ili9325WriteCmd(uint16_t command) { CLR_CS_CD_SET_RD_WR; ILI9325_GPIO2DATA_DATA = (command >> (8 - ILI9325_DATA_OFFSET)); CLR_WR; SET_WR; ILI9325_GPIO2DATA_DATA = command << ILI9325_DATA_OFFSET; CLR_WR; SET_WR_CS; } +#endif /**************************************************************************/ /*! @brief Writes the supplied 16-bit data using an 8-bit interface */ /**************************************************************************/ +#if !defined ILI9238_USE_INLINE_METHODS void ili9325WriteData(uint16_t data) { CLR_CS_SET_CD_RD_WR; // Saves 18 commands compared to SET_CD; SET_RD; SET_WR; CLR_CS" @@ -110,6 +122,9 @@ void ili9325WriteData(uint16_t data) CLR_WR; SET_WR_CS; // Saves 7 commands compared to "SET_WR, SET_CS;" } +#else +static inline void ili9325WriteData(uint16_t data) { CLR_CS_SET_CD_RD_WR; ILI9325_GPIO2DATA_DATA = (data >> (8 - ILI9325_DATA_OFFSET)); CLR_WR; SET_WR; ILI9325_GPIO2DATA_DATA = data << ILI9325_DATA_OFFSET; CLR_WR; SET_WR_CS; } +#endif /**************************************************************************/ /*! @@ -191,6 +206,7 @@ uint16_t ili9325Type(void) @brief Sets the cursor to the specified X/Y position */ /**************************************************************************/ +#if !defined ILI9238_USE_INLINE_METHODS void ili9325SetCursor(uint16_t x, uint16_t y) { uint16_t al, ah; @@ -209,6 +225,9 @@ void ili9325SetCursor(uint16_t x, uint16_t y) ili9325Command(ILI9325_COMMANDS_HORIZONTALGRAMADDRESSSET, al); ili9325Command(ILI9325_COMMANDS_VERTICALGRAMADDRESSSET, ah); } +#else +static inline void ili9325SetCursor(uint16_t x, uint16_t y) { uint16_t al, ah; if (lcdOrientation == LCD_ORIENTATION_LANDSCAPE) { al = y; ah = x; } else { al = x; ah = y; }; ili9325WriteCmd(ILI9325_COMMANDS_HORIZONTALGRAMADDRESSSET); ili9325WriteData(al); ili9325WriteCmd(ILI9325_COMMANDS_VERTICALGRAMADDRESSSET); ili9325WriteData(ah); } +#endif /**************************************************************************/ /*! diff --git a/drivers/lcd/tft/hw/ILI9328.c b/drivers/lcd/tft/hw/ILI9328.c index 347d410..aba75c2 100644 --- a/drivers/lcd/tft/hw/ILI9328.c +++ b/drivers/lcd/tft/hw/ILI9328.c @@ -43,6 +43,9 @@ #include "core/systick/systick.h" #include "drivers/lcd/tft/touchscreen.h" +// Uncomment this to use faster inline methods, but requires more flash +#define ILI9238_USE_INLINE_METHODS (1) + static volatile lcdOrientation_t lcdOrientation = LCD_ORIENTATION_PORTRAIT; static lcdProperties_t ili9328Properties = { 240, 320, TRUE, TRUE, TRUE }; @@ -55,6 +58,7 @@ static lcdProperties_t ili9328Properties = { 240, 320, TRUE, TRUE, TRUE }; @brief Causes a brief delay (10 ticks per unit) */ /**************************************************************************/ +#if !defined ILI9238_USE_INLINE_METHODS void ili9328Delay(unsigned int t) { unsigned char t1; @@ -64,12 +68,16 @@ void ili9328Delay(unsigned int t) __asm("nop"); } } +#else +static inline void ili9328Delay(unsigned int t) { unsigned char t1; while(t--) for ( t1=10; t1 > 0; t1-- ) { __asm("nop"); } } +#endif /**************************************************************************/ /*! @brief Writes the supplied 16-bit command using an 8-bit interface */ /**************************************************************************/ +#if !defined ILI9238_USE_INLINE_METHODS void ili9328WriteCmd(uint16_t command) { // Compiled with -Os on GCC 4.4 this works out to 25 cycles @@ -87,12 +95,16 @@ void ili9328WriteCmd(uint16_t command) CLR_WR; SET_WR_CS; // Saves 7 commands compared to "SET_WR; SET_CS;" } +#else +static inline void ili9328WriteCmd(uint16_t command) { CLR_CS_CD_SET_RD_WR; ILI9328_GPIO2DATA_DATA = (command >> (8 - ILI9328_DATA_OFFSET)); CLR_WR; SET_WR; ILI9328_GPIO2DATA_DATA = command << ILI9328_DATA_OFFSET; CLR_WR; SET_WR_CS; } +#endif /**************************************************************************/ /*! @brief Writes the supplied 16-bit data using an 8-bit interface */ /**************************************************************************/ +#if !defined ILI9238_USE_INLINE_METHODS void ili9328WriteData(uint16_t data) { CLR_CS_SET_CD_RD_WR; // Saves 18 commands compared to SET_CD; SET_RD; SET_WR; CLR_CS" @@ -103,6 +115,9 @@ void ili9328WriteData(uint16_t data) CLR_WR; SET_WR_CS; // Saves 7 commands compared to "SET_WR, SET_CS;" } +#else +static inline void ili9328WriteData(uint16_t data) { CLR_CS_SET_CD_RD_WR; ILI9328_GPIO2DATA_DATA = (data >> (8 - ILI9328_DATA_OFFSET)); CLR_WR; SET_WR; ILI9328_GPIO2DATA_DATA = data << ILI9328_DATA_OFFSET; CLR_WR; SET_WR_CS; } +#endif /**************************************************************************/ /*! @@ -184,6 +199,7 @@ uint16_t ili9328Type(void) @brief Sets the cursor to the specified X/Y position */ /**************************************************************************/ +#if !defined ILI9238_USE_INLINE_METHODS void ili9328SetCursor(uint16_t x, uint16_t y) { uint16_t al, ah; @@ -202,6 +218,9 @@ void ili9328SetCursor(uint16_t x, uint16_t y) ili9328Command(ILI9328_COMMANDS_HORIZONTALGRAMADDRESSSET, al); ili9328Command(ILI9328_COMMANDS_VERTICALGRAMADDRESSSET, ah); } +#else +static inline void ili9328SetCursor(uint16_t x, uint16_t y) { uint16_t al, ah; if (lcdOrientation == LCD_ORIENTATION_LANDSCAPE) { al = y; ah = x; } else { al = x; ah = y; }; ili9328WriteCmd(ILI9328_COMMANDS_HORIZONTALGRAMADDRESSSET); ili9328WriteData(al); ili9328WriteCmd(ILI9328_COMMANDS_VERTICALGRAMADDRESSSET); ili9328WriteData(ah); } +#endif /**************************************************************************/ /*! diff --git a/drivers/lcd/tft/touchscreen.c b/drivers/lcd/tft/touchscreen.c index 20e9a19..4d4a2cd 100644 --- a/drivers/lcd/tft/touchscreen.c +++ b/drivers/lcd/tft/touchscreen.c @@ -213,7 +213,7 @@ tsTouchData_t tsRenderCalibrationScreen(uint16_t x, uint16_t y, uint16_t radius) @note This is based on the public domain touch screen calibration code written by Carlos E. Vidales (copyright (c) 2001). - For more inforormation, see the following app notes: + For more information, see the following app notes: - AN2173 - Touch Screen Control and Calibration Svyatoslav Paliy, Cypress Microsystems @@ -262,7 +262,6 @@ int setCalibrationMatrix( tsPoint_t * displayPtr, tsPoint_t * screenPtr, tsMatri eepromWriteS32(CFG_EEPROM_TOUCHSCREEN_CAL_DN, matrixPtr->Dn); eepromWriteS32(CFG_EEPROM_TOUCHSCREEN_CAL_EN, matrixPtr->En); eepromWriteS32(CFG_EEPROM_TOUCHSCREEN_CAL_FN, matrixPtr->Fn); - eepromWriteS32(CFG_EEPROM_TOUCHSCREEN_CAL_FN, matrixPtr->Fn); eepromWriteS32(CFG_EEPROM_TOUCHSCREEN_CAL_DIVIDER, matrixPtr->Divider); eepromWriteU8(CFG_EEPROM_TOUCHSCREEN_CALIBRATED, 1); } diff --git a/drivers/rtc/isl12022m/isl12022m.c b/drivers/rtc/isl12022m/isl12022m.c index ed2d0f8..fbb2275 100644 --- a/drivers/rtc/isl12022m/isl12022m.c +++ b/drivers/rtc/isl12022m/isl12022m.c @@ -46,8 +46,6 @@ extern volatile uint8_t I2CMasterBuffer[I2C_BUFSIZE]; extern volatile uint8_t I2CSlaveBuffer[I2C_BUFSIZE]; extern volatile uint32_t I2CReadLength, I2CWriteLength; -uint8_t monthday[12]={31,28,31,30,31,30,31,31,30,31,30,31}; - static bool _isl12022mInitialised = false; /**************************************************************************/ diff --git a/lpc134x.h b/lpc134x.h index 9da8fcb..cb41088 100644 --- a/lpc134x.h +++ b/lpc134x.h @@ -232,45 +232,45 @@ subsystem. Note that the USB subsystem has its own dedicated PLL. The PLL can produce a clock up to the maximum allowed for the CPU, which is 72 MHz. */ -#define SCB_PLLCTRL_MULT_1 ((unsigned int) 0x00000000) -#define SCB_PLLCTRL_MULT_2 ((unsigned int) 0x00000001) -#define SCB_PLLCTRL_MULT_3 ((unsigned int) 0x00000002) -#define SCB_PLLCTRL_MULT_4 ((unsigned int) 0x00000003) -#define SCB_PLLCTRL_MULT_5 ((unsigned int) 0x00000004) -#define SCB_PLLCTRL_MULT_6 ((unsigned int) 0x00000005) -#define SCB_PLLCTRL_MULT_7 ((unsigned int) 0x00000006) -#define SCB_PLLCTRL_MULT_8 ((unsigned int) 0x00000007) -#define SCB_PLLCTRL_MULT_9 ((unsigned int) 0x00000008) -#define SCB_PLLCTRL_MULT_10 ((unsigned int) 0x00000009) -#define SCB_PLLCTRL_MULT_11 ((unsigned int) 0x0000000A) -#define SCB_PLLCTRL_MULT_12 ((unsigned int) 0x0000000B) -#define SCB_PLLCTRL_MULT_13 ((unsigned int) 0x0000000C) -#define SCB_PLLCTRL_MULT_14 ((unsigned int) 0x0000000D) -#define SCB_PLLCTRL_MULT_15 ((unsigned int) 0x0000000E) -#define SCB_PLLCTRL_MULT_16 ((unsigned int) 0x0000000F) -#define SCB_PLLCTRL_MULT_17 ((unsigned int) 0x00000010) -#define SCB_PLLCTRL_MULT_18 ((unsigned int) 0x00000011) -#define SCB_PLLCTRL_MULT_19 ((unsigned int) 0x00000012) -#define SCB_PLLCTRL_MULT_20 ((unsigned int) 0x00000013) -#define SCB_PLLCTRL_MULT_21 ((unsigned int) 0x00000014) -#define SCB_PLLCTRL_MULT_22 ((unsigned int) 0x00000015) -#define SCB_PLLCTRL_MULT_23 ((unsigned int) 0x00000016) -#define SCB_PLLCTRL_MULT_24 ((unsigned int) 0x00000017) -#define SCB_PLLCTRL_MULT_25 ((unsigned int) 0x00000018) -#define SCB_PLLCTRL_MULT_26 ((unsigned int) 0x00000019) -#define SCB_PLLCTRL_MULT_27 ((unsigned int) 0x0000001A) -#define SCB_PLLCTRL_MULT_28 ((unsigned int) 0x0000001B) -#define SCB_PLLCTRL_MULT_29 ((unsigned int) 0x0000001C) -#define SCB_PLLCTRL_MULT_30 ((unsigned int) 0x0000001D) -#define SCB_PLLCTRL_MULT_31 ((unsigned int) 0x0000001E) -#define SCB_PLLCTRL_MULT_32 ((unsigned int) 0x0000001F) -#define SCB_PLLCTRL_MULT_MASK ((unsigned int) 0x0000001F) -#define SCB_PLLCTRL_DIV_2 ((unsigned int) 0x00000000) -#define SCB_PLLCTRL_DIV_4 ((unsigned int) 0x00000020) -#define SCB_PLLCTRL_DIV_8 ((unsigned int) 0x00000040) -#define SCB_PLLCTRL_DIV_16 ((unsigned int) 0x00000060) -#define SCB_PLLCTRL_DIV_BIT (5) -#define SCB_PLLCTRL_DIV_MASK ((unsigned int) 0x00000060) +#define SCB_PLLCTRL_MSEL_1 ((unsigned int) 0x00000000) +#define SCB_PLLCTRL_MSEL_2 ((unsigned int) 0x00000001) +#define SCB_PLLCTRL_MSEL_3 ((unsigned int) 0x00000002) +#define SCB_PLLCTRL_MSEL_4 ((unsigned int) 0x00000003) +#define SCB_PLLCTRL_MSEL_5 ((unsigned int) 0x00000004) +#define SCB_PLLCTRL_MSEL_6 ((unsigned int) 0x00000005) +#define SCB_PLLCTRL_MSEL_7 ((unsigned int) 0x00000006) +#define SCB_PLLCTRL_MSEL_8 ((unsigned int) 0x00000007) +#define SCB_PLLCTRL_MSEL_9 ((unsigned int) 0x00000008) +#define SCB_PLLCTRL_MSEL_10 ((unsigned int) 0x00000009) +#define SCB_PLLCTRL_MSEL_11 ((unsigned int) 0x0000000A) +#define SCB_PLLCTRL_MSEL_12 ((unsigned int) 0x0000000B) +#define SCB_PLLCTRL_MSEL_13 ((unsigned int) 0x0000000C) +#define SCB_PLLCTRL_MSEL_14 ((unsigned int) 0x0000000D) +#define SCB_PLLCTRL_MSEL_15 ((unsigned int) 0x0000000E) +#define SCB_PLLCTRL_MSEL_16 ((unsigned int) 0x0000000F) +#define SCB_PLLCTRL_MSEL_17 ((unsigned int) 0x00000010) +#define SCB_PLLCTRL_MSEL_18 ((unsigned int) 0x00000011) +#define SCB_PLLCTRL_MSEL_19 ((unsigned int) 0x00000012) +#define SCB_PLLCTRL_MSEL_20 ((unsigned int) 0x00000013) +#define SCB_PLLCTRL_MSEL_21 ((unsigned int) 0x00000014) +#define SCB_PLLCTRL_MSEL_22 ((unsigned int) 0x00000015) +#define SCB_PLLCTRL_MSEL_23 ((unsigned int) 0x00000016) +#define SCB_PLLCTRL_MSEL_24 ((unsigned int) 0x00000017) +#define SCB_PLLCTRL_MSEL_25 ((unsigned int) 0x00000018) +#define SCB_PLLCTRL_MSEL_26 ((unsigned int) 0x00000019) +#define SCB_PLLCTRL_MSEL_27 ((unsigned int) 0x0000001A) +#define SCB_PLLCTRL_MSEL_28 ((unsigned int) 0x0000001B) +#define SCB_PLLCTRL_MSEL_29 ((unsigned int) 0x0000001C) +#define SCB_PLLCTRL_MSEL_30 ((unsigned int) 0x0000001D) +#define SCB_PLLCTRL_MSEL_31 ((unsigned int) 0x0000001E) +#define SCB_PLLCTRL_MSEL_32 ((unsigned int) 0x0000001F) +#define SCB_PLLCTRL_MSEL_MASK ((unsigned int) 0x0000001F) +#define SCB_PLLCTRL_PSEL_2 ((unsigned int) 0x00000000) +#define SCB_PLLCTRL_PSEL_4 ((unsigned int) 0x00000020) +#define SCB_PLLCTRL_PSEL_8 ((unsigned int) 0x00000040) +#define SCB_PLLCTRL_PSEL_16 ((unsigned int) 0x00000060) +#define SCB_PLLCTRL_PSEL_BIT (5) +#define SCB_PLLCTRL_PSEL_MASK ((unsigned int) 0x00000060) #define SCB_PLLCTRL_DIRECT_MASK ((unsigned int) 0x00000080) // Direct CCO clock output control #define SCB_PLLCTRL_BYPASS_MASK ((unsigned int) 0x00000100) // Input clock bypass control #define SCB_PLLCTRL_MASK ((unsigned int) 0x000001FF) @@ -1797,7 +1797,7 @@ #define IOCON_SWDIO_PIO1_3_FUNC_SWDIO ((unsigned int) 0x00000000) #define IOCON_SWDIO_PIO1_3_FUNC_GPIO ((unsigned int) 0x00000001) #define IOCON_SWDIO_PIO1_3_FUNC_AD4 ((unsigned int) 0x00000002) -#define IOCON_SWDIO_PIO1_3_FUNC_CT32B1_MAT2 ((unsigned int) 0x00000004) +#define IOCON_SWDIO_PIO1_3_FUNC_CT32B1_MAT2 ((unsigned int) 0x00000003) #define IOCON_SWDIO_PIO1_3_HYS_MASK ((unsigned int) 0x00000020) #define IOCON_SWDIO_PIO1_3_HYS_DISABLE ((unsigned int) 0x00000000) #define IOCON_SWDIO_PIO1_3_HYS_ENABLE ((unsigned int) 0x00000020) diff --git a/projectconfig.h b/projectconfig.h index 1252ef0..edee264 100644 --- a/projectconfig.h +++ b/projectconfig.h @@ -129,7 +129,7 @@ -----------------------------------------------------------------------*/ #define CFG_FIRMWARE_VERSION_MAJOR (0) #define CFG_FIRMWARE_VERSION_MINOR (9) - #define CFG_FIRMWARE_VERSION_REVISION (3) + #define CFG_FIRMWARE_VERSION_REVISION (5) /*=========================================================================*/ diff --git a/tools/dotfactory/OutputConfigs.xml b/tools/dotfactory/OutputConfigs.xml index a8160a8..727deee 100644 --- a/tools/dotfactory/OutputConfigs.xml +++ b/tools/dotfactory/OutputConfigs.xml @@ -24,7 +24,7 @@ DisplayInBytes DisplayInBits true - 8 + 5 const uint8_t {0}Bitmaps const FONT_CHAR_INFO {0}Descriptors const FONT_INFO {0}FontInfo