mirror of https://github.com/ARMmbed/mbed-os.git
Bugfix: PIN Modes was not set correctly
Added: Export to uVision and Code Red toolchainspull/62/head
parent
45565cb055
commit
0e36bdd457
|
|
@ -88,9 +88,9 @@ typedef enum {
|
||||||
} PinName;
|
} PinName;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
PullUp = 0,
|
PullUp = 2,
|
||||||
PullDown = 3,
|
PullDown = 1,
|
||||||
PullNone = 2,
|
PullNone = 0,
|
||||||
OpenDrain = 4
|
OpenDrain = 4
|
||||||
} PinMode;
|
} PinMode;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -164,7 +164,7 @@ void can_irq_set(can_t *obj, CanIrqType type, uint32_t enable) {
|
||||||
obj->dev->MOD &= ~(1);
|
obj->dev->MOD &= ~(1);
|
||||||
|
|
||||||
// Enable NVIC if at least 1 interrupt is active
|
// Enable NVIC if at least 1 interrupt is active
|
||||||
if(LPC_CAN1->IER | LPC_CAN2->IER != 0) {
|
if((LPC_CAN1->IER | LPC_CAN2->IER) != 0) {
|
||||||
NVIC_SetVector(CAN_IRQn, (uint32_t) &can_irq_n);
|
NVIC_SetVector(CAN_IRQn, (uint32_t) &can_irq_n);
|
||||||
NVIC_EnableIRQ(CAN_IRQn);
|
NVIC_EnableIRQ(CAN_IRQn);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -962,3 +962,47 @@ void ethernet_set_link(int speed, int duplex) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The Embedded Artists LPC4088 QuickStart Board has an eeprom with a unique
|
||||||
|
* 48 bit ID. This ID is used as MAC address.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "i2c_api.h"
|
||||||
|
|
||||||
|
static int _macRetrieved = 0;
|
||||||
|
static char _macAddr[6] = {0x00,0x02,0xF7,0xF0,0x00,0x00};
|
||||||
|
#define EEPROM_24AA02E48_ADDR (0xA0)
|
||||||
|
|
||||||
|
void mbed_mac_address(char *mac) {
|
||||||
|
|
||||||
|
if (_macRetrieved == 0) {
|
||||||
|
char tmp[6];
|
||||||
|
i2c_t i2cObj;
|
||||||
|
|
||||||
|
i2c_init(&i2cObj, P0_27, P0_28);
|
||||||
|
|
||||||
|
do {
|
||||||
|
// the unique ID is at offset 0xFA
|
||||||
|
tmp[0] = 0xFA;
|
||||||
|
if (i2c_write(&i2cObj, EEPROM_24AA02E48_ADDR, tmp, 1, 1) != 1) {
|
||||||
|
break; // failed to write
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (i2c_read(&i2cObj, EEPROM_24AA02E48_ADDR, tmp, 6, 1) != 6) {
|
||||||
|
break; // failed to read
|
||||||
|
}
|
||||||
|
|
||||||
|
memcpy(_macAddr, tmp, 6);
|
||||||
|
|
||||||
|
} while(0);
|
||||||
|
|
||||||
|
// We always consider the MAC address to be retrieved even though
|
||||||
|
// reading from the eeprom failed. If it wasn't possible to read
|
||||||
|
// from eeprom the default address will be used.
|
||||||
|
_macRetrieved = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
memcpy(mac, _macAddr, 6);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ from os.path import splitext, basename
|
||||||
|
|
||||||
class CodeRed(Exporter):
|
class CodeRed(Exporter):
|
||||||
NAME = 'CodeRed'
|
NAME = 'CodeRed'
|
||||||
TARGETS = ['LPC1768']
|
TARGETS = ['LPC1768', 'LPC4088']
|
||||||
TOOLCHAIN = 'GCC_CR'
|
TOOLCHAIN = 'GCC_CR'
|
||||||
|
|
||||||
def generate(self):
|
def generate(self):
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ from os.path import basename
|
||||||
class Uvision4(Exporter):
|
class Uvision4(Exporter):
|
||||||
NAME = 'uVision4'
|
NAME = 'uVision4'
|
||||||
TOOLCHAIN = 'ARM'
|
TOOLCHAIN = 'ARM'
|
||||||
TARGETS = ['LPC1768', 'LPC11U24', 'KL25Z', 'LPC1347', 'LPC1114']
|
TARGETS = ['LPC1768', 'LPC11U24', 'KL25Z', 'LPC1347', 'LPC1114', 'LPC4088']
|
||||||
FILE_TYPES = {
|
FILE_TYPES = {
|
||||||
'c_sources':'1',
|
'c_sources':'1',
|
||||||
'cpp_sources':'8',
|
'cpp_sources':'8',
|
||||||
|
|
|
||||||
|
|
@ -76,9 +76,9 @@ if __name__ == '__main__':
|
||||||
setup_test_user_prj()
|
setup_test_user_prj()
|
||||||
|
|
||||||
for toolchain, target in [
|
for toolchain, target in [
|
||||||
('uvision', 'LPC1768'), ('uvision', 'LPC11U24'), ('uvision', 'KL25Z'), ('uvision', 'LPC1347'), ('uvision', 'LPC1114'),
|
('uvision', 'LPC1768'), ('uvision', 'LPC11U24'), ('uvision', 'KL25Z'), ('uvision', 'LPC1347'), ('uvision', 'LPC1114'), ('uvision', 'LPC4088'),
|
||||||
|
|
||||||
('codered', 'LPC1768'),
|
('codered', 'LPC1768'), ('codered', 'LPC4088'),
|
||||||
|
|
||||||
# Linux path: /home/emimon01/bin/gcc-cs/bin/
|
# Linux path: /home/emimon01/bin/gcc-cs/bin/
|
||||||
# Windows path: "C:/Program Files (x86)/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin/"
|
# Windows path: "C:/Program Files (x86)/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin/"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue