Рейтинг:  5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна
 
В конце-концов нам это надоело и мы запилили калькуль на JavaScript сегодня ночью :) для расчёта адресов bitBand регистров портов STM32F10x.
Get enjoy!

<!DOCTYPE HTML>
<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);
 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>Выберите порт:
</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">GPIOD</option>
 </select>
</td>
<td rowspan="3">
 <button onClick="javascript: calculateBitBand();"><b>Рассчитать <br/>адрес bitband</b></button>
</td>
</tr>
 
<tr>
<td>Выберите регистр порта:
</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>Выберите линию порта:
</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">
<input type="text" size="20" name="calculatedBitBand"/>
</td>
</tr>
  </table>
 </form>
</body>
</html>
 /div quot;javascript/divnbsp;0x42000000; gt;quot;0x00quot; /quot;quot; /gt;quot;0x00