Рейтинг: 5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна
 

В конце-концов нам это надоело и мы запилили калькуль на JavaScript сегодня ночью :) для расчёта адресов bitBand регистров портов STM32F10x.
Get enjoy!
ПОГЛЯДЕТЬ

<html>

 

<head>

 

<title> Bitband Calculating </title>

 

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

 

<script language="javascript">

 

<!--

 

PERIPH_BASE = 0x40000000;

 

PERIPH_BB_BASE = 0x42000000;

 

APB1PERIPH_BASE = PERIPH_BASE;

 

APB2PERIPH_BASE = (PERIPH_BASE + 0x10000);

 

 

 

function calculateBitBand(){

 

bitBandAddress = PERIPH_BB_BASE + (document.all.port.value*1 + document.all.register.value*1 - PERIPH_BASE + APB2PERIPH_BASE)*0x20 + document.all.line.value*0x04;

 

document.all.calculatedBitBand.value='0x'+(bitBandAddress).toString(16);

 

document.all.calculatedBitBandDefine.value = '(*((volatile unsigned long *) '+document.all.calculatedBitBand.value+'))';

 

return;

 

}

 

//-->

 

</script>

 

<style type="text/css">

 

table{font-size:16pt; font-family: Arial;}

 

button{font-size:14pt; font-family: Arial;}

 

table.table_one{

 

border: 2px solid #363;

 

}

 

td{

 

border: 0px;

 

}

 

 

 

</style>

 

</head>

 

<body>

 

 

 

<table class="table_one">

 

<tr>

 

<td>Выберите порт / Choose a port:

 

</td>

 

<td>

 

<select size = "1" name = "port">

 

<option value="0x0800">GPIOA</option>

 

<option value="0x0C00">GPIOB</option>

 

<option value="0x1000">GPIOC</option>

 

<option value="0x1400">GPIOD</option>

 

<option value="0x1800">GPIOE</option>

 

<option value="0x1C00">GPIOF</option>

 

<option value="0x2000">GPIOG</option>

 

</select>

 

</td>

 

<td rowspan="3">

 

<button onClick="javascript: calculateBitBand();"><b>Рассчитать адрес <br/> Calculate address of bitband</b></button>

 

</td>

 

</tr>

 

 

 

<tr>

 

<td>Выберите регистр порта / Select a register:

 

</td>

 

<td>

 

<select size = "1" name = "register">

 

<option value="0x00">CRL</option>

 

<option value="0x04">CRH</option>

 

<option value="0x08">IDR</option>

 

<option value="0x0C">ODR</option>

 

<option value="0x10">BSRR</option>

 

<option value="0x14">BRR</option>

 

<option value="0x18">LCKR</option>

 

</select>

 

</td>

 

</tr>

 

<tr>

 

<td>Выберите линию порта / Choose a line:

 

</td>

 

<td>

 

<select size = "1" name = "line">

 

<script language = "javascript">

 

for(i=0; i<16; i++)

 

document.write('<option value="'+i+'">'+i+'</option>');

 

</script>

 

</select>

 

</td>

 

</tr>

 

<tr>

 

<td colspan ="3">

 

Адрес/Address bitband: <input type="text" size="50" name="calculatedBitBand"/><br/>

 

Разыменование указателя для / disreferencing pointer for #define:

 

</td>

 

</tr>

 

<tr>

 

<td colspan="3">

 

<input type="text" size="50" name="calculatedBitBandDefine"/>

 

</td>

 

</tr>

 

 

 

</table>

 

 

 

</body>

 

</html>