Skip to content

Commit 2cf666c

Browse files
uicr: Interface members should not be capitalised and add to docs.
1 parent 1990f90 commit 2cf666c

File tree

5 files changed

+38
-23
lines changed

5 files changed

+38
-23
lines changed

docs/quick-guide.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,17 @@ if (microbitFs.isAppendedScriptPresent(finalHexStr)) {
4444
var pythonCode = microbitFs.getIntelHexAppendedScript(finalHexStr)
4545
}
4646
```
47+
48+
### Read UICR data
49+
50+
```js
51+
var uicrData = getIntelHexUicrData(IntelHexStr);
52+
console.log('' + );
53+
console.log('Flash Page Size:' + uicrData.flashPageSize);
54+
console.log('Runtime Start Page:' + uicrData.runtimeStartPage);
55+
console.log('Runtime Start Address:' + uicrData.runtimeStartAddress);
56+
console.log('Runtime End Used:' + uicrData.runtimeEndUsed);
57+
console.log('Runtime End Address:' + uicrData.runtimeEndAddress);
58+
console.log('Version Address:' + uicrData.versionAddress);
59+
console.log('Version: ' + uicrData.version);
60+
```

src/__tests__/uicr.spec.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,17 @@ describe('Read MicroPython UICR data.', () => {
2121

2222
const result = getIntelHexUicrData(uPyHexFile);
2323

24-
expect(result.FlashPageSize).toEqual(expectedPageSize);
25-
expect(result.RuntimeStartPage).toEqual(expectedRuntimeStartPage);
26-
expect(result.RuntimeStartAddress).toEqual(
24+
expect(result.flashPageSize).toEqual(expectedPageSize);
25+
expect(result.runtimeStartPage).toEqual(expectedRuntimeStartPage);
26+
expect(result.runtimeStartAddress).toEqual(
2727
expectedRuntimeStartPage * expectedPageSize
2828
);
29-
expect(result.RuntimeEndUsed).toEqual(expectedRuntimeEndPage);
30-
expect(result.RuntimeEndAddress).toEqual(
29+
expect(result.runtimeEndUsed).toEqual(expectedRuntimeEndPage);
30+
expect(result.runtimeEndAddress).toEqual(
3131
expectedRuntimeEndPage * expectedPageSize
3232
);
33-
expect(result.VersionAddress).toEqual(expectedVersionAddress);
34-
expect(result.Version).toEqual(expectedVersion);
33+
expect(result.versionAddress).toEqual(expectedVersionAddress);
34+
expect(result.version).toEqual(expectedVersion);
3535
});
3636

3737
it('UICR data without MicroPython magic number', () => {

src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
export * from './micropython-appended';
22
export * from './micropython-fs-hex';
3+
export * from './uicr';

src/micropython-fs-builder.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ function getFreeChunks(intelHexMap: MemoryMap): number[] {
8585
*/
8686
function getStartAddress(intelHexMap: MemoryMap): number {
8787
const uicrData = getHexMapUicrData(intelHexMap);
88-
const startAddress = uicrData.RuntimeEndAddress;
88+
const startAddress = uicrData.runtimeEndAddress;
8989
// Ensure the start address aligns with the page size
9090
if (startAddress % FLASH_PAGE_SIZE) {
9191
throw new Error(

src/uicr.ts

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,13 @@ enum MicropythonUicrAddress {
3939

4040
/** MicroPython data stored in the UICR Customer area. */
4141
interface MicropythonUicrData {
42-
FlashPageSize: number;
43-
RuntimeStartPage: number;
44-
RuntimeStartAddress: number;
45-
RuntimeEndUsed: number;
46-
RuntimeEndAddress: number;
47-
VersionAddress: number;
48-
Version: string;
42+
flashPageSize: number;
43+
runtimeStartPage: number;
44+
runtimeStartAddress: number;
45+
runtimeEndUsed: number;
46+
runtimeEndAddress: number;
47+
versionAddress: number;
48+
version: string;
4949
}
5050

5151
/**
@@ -186,7 +186,7 @@ function getVersionLocation(intelHexMap: MemoryMap): number {
186186
function getHexMapUicrData(intelHexMap: MemoryMap): MicropythonUicrData {
187187
const uicrMap = intelHexMap.slice(UICR_UPY_START);
188188
if (!confirmMagicValue(uicrMap)) {
189-
throw new Error('Could not find valid UICR data in Intel Hex data.');
189+
throw new Error('Could not find valid MicroPython UICR data.');
190190
}
191191
const pageSize: number = getPageSize(uicrMap);
192192
const startPage: number = getStartPage(uicrMap);
@@ -195,13 +195,13 @@ function getHexMapUicrData(intelHexMap: MemoryMap): MicropythonUicrData {
195195
const version: string = getStringFromIntelHexMap(intelHexMap, versionAddress);
196196

197197
return {
198-
FlashPageSize: pageSize,
199-
RuntimeStartPage: startPage,
200-
RuntimeStartAddress: startPage * pageSize,
201-
RuntimeEndUsed: pagesUsed,
202-
RuntimeEndAddress: pagesUsed * pageSize,
203-
VersionAddress: versionAddress,
204-
Version: version,
198+
flashPageSize: pageSize,
199+
runtimeStartPage: startPage,
200+
runtimeStartAddress: startPage * pageSize,
201+
runtimeEndUsed: pagesUsed,
202+
runtimeEndAddress: pagesUsed * pageSize,
203+
versionAddress,
204+
version,
205205
};
206206
}
207207

0 commit comments

Comments
 (0)