Рейтинг:  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>