mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-17 21:35:44 +03:00
some initial fixes, still broken :'(
This commit is contained in:
parent
55de43255c
commit
cf601a38f3
2 changed files with 11 additions and 9 deletions
14
js/stm32.js
14
js/stm32.js
|
@ -133,8 +133,8 @@ STM32_protocol.prototype.initialize = function() {
|
||||||
// reset and set some variables before we start
|
// reset and set some variables before we start
|
||||||
self.receive_buffer = [];
|
self.receive_buffer = [];
|
||||||
|
|
||||||
self.flashing_memory_address = self.hex.extended_linear_address;
|
self.flashing_memory_address = self.hex.extended_linear_address[0];
|
||||||
self.verify_memory_address = self.hex.extended_linear_address;
|
self.verify_memory_address = self.hex.extended_linear_address[0];
|
||||||
|
|
||||||
self.bytes_flashed = 0;
|
self.bytes_flashed = 0;
|
||||||
self.bytes_verified = 0;
|
self.bytes_verified = 0;
|
||||||
|
@ -412,7 +412,7 @@ STM32_protocol.prototype.upload_procedure = function(step) {
|
||||||
self.send([self.command.write_memory, 0xCE], 1, function(reply) { // 0x31 ^ 0xFF
|
self.send([self.command.write_memory, 0xCE], 1, function(reply) { // 0x31 ^ 0xFF
|
||||||
if (self.verify_response(self.status.ACK, reply)) {
|
if (self.verify_response(self.status.ACK, reply)) {
|
||||||
// address needs to be transmitted as 32 bit integer, we need to bit shift each byte out and then calculate address checksum
|
// address needs to be transmitted as 32 bit integer, we need to bit shift each byte out and then calculate address checksum
|
||||||
var address = [(self.flashing_memory_address >> 24), (self.flashing_memory_address >> 16) & 0xFF, (self.flashing_memory_address >> 8) & 0xFF, (self.flashing_memory_address & 0xFF)];
|
var address = [(self.flashing_memory_address >> 24), (self.flashing_memory_address >> 16), (self.flashing_memory_address >> 8), self.flashing_memory_address];
|
||||||
var address_checksum = address[0] ^ address[1] ^ address[2] ^ address[3];
|
var address_checksum = address[0] ^ address[1] ^ address[2] ^ address[3];
|
||||||
|
|
||||||
self.send([address[0], address[1], address[2], address[3], address_checksum], 1, function(reply) { // write start address + checksum
|
self.send([address[0], address[1], address[2], address[3], address_checksum], 1, function(reply) { // write start address + checksum
|
||||||
|
@ -466,7 +466,7 @@ STM32_protocol.prototype.upload_procedure = function(step) {
|
||||||
|
|
||||||
self.send([self.command.read_memory, 0xEE], 1, function(reply) { // 0x11 ^ 0xFF
|
self.send([self.command.read_memory, 0xEE], 1, function(reply) { // 0x11 ^ 0xFF
|
||||||
if (self.verify_response(self.status.ACK, reply)) {
|
if (self.verify_response(self.status.ACK, reply)) {
|
||||||
var address = [(self.verify_memory_address >> 24), (self.verify_memory_address >> 16) & 0x00FF, (self.verify_memory_address >> 8) & 0x00FF, (self.verify_memory_address & 0x00FF)];
|
var address = [(self.verify_memory_address >> 24), (self.verify_memory_address >> 16), (self.verify_memory_address >> 8), self.verify_memory_address];
|
||||||
var address_checksum = address[0] ^ address[1] ^ address[2] ^ address[3];
|
var address_checksum = address[0] ^ address[1] ^ address[2] ^ address[3];
|
||||||
|
|
||||||
self.send([address[0], address[1], address[2], address[3], address_checksum], 1, function(reply) { // read start address + checksum
|
self.send([address[0], address[1], address[2], address[3], address_checksum], 1, function(reply) { // read start address + checksum
|
||||||
|
@ -524,12 +524,12 @@ STM32_protocol.prototype.upload_procedure = function(step) {
|
||||||
case 7:
|
case 7:
|
||||||
// go
|
// go
|
||||||
// memory address = 4 bytes, 1st high byte, 4th low byte, 5th byte = checksum XOR(byte 1, byte 2, byte 3, byte 4)
|
// memory address = 4 bytes, 1st high byte, 4th low byte, 5th byte = checksum XOR(byte 1, byte 2, byte 3, byte 4)
|
||||||
console.log('Sending GO command: 0x' + self.hex.extended_linear_address.toString(16));
|
console.log('Sending GO command: 0x' + self.hex.extended_linear_address[0].toString(16));
|
||||||
|
|
||||||
self.send([self.command.go, 0xDE], 1, function(reply) { // 0x21 ^ 0xFF
|
self.send([self.command.go, 0xDE], 1, function(reply) { // 0x21 ^ 0xFF
|
||||||
if (self.verify_response(self.status.ACK, reply)) {
|
if (self.verify_response(self.status.ACK, reply)) {
|
||||||
var gt_address = self.hex.extended_linear_address;
|
var gt_address = self.hex.extended_linear_address[0];
|
||||||
var address = [(gt_address >> 24), (gt_address >> 16) & 0x00FF, (gt_address >> 8) & 0x00FF, (gt_address & 0x00FF)];
|
var address = [(gt_address >> 24), (gt_address >> 16), (gt_address >> 8), gt_address];
|
||||||
var address_checksum = address[0] ^ address[1] ^ address[2] ^ address[3];
|
var address_checksum = address[0] ^ address[1] ^ address[2] ^ address[3];
|
||||||
|
|
||||||
self.send([address[0], address[1], address[2], address[3], address_checksum], 1, function(reply) {
|
self.send([address[0], address[1], address[2], address[3], address_checksum], 1, function(reply) {
|
||||||
|
|
|
@ -14,7 +14,7 @@ function read_hex_file(data) {
|
||||||
var result = {
|
var result = {
|
||||||
data: [],
|
data: [],
|
||||||
end_of_file: false,
|
end_of_file: false,
|
||||||
extended_linear_address: 0,
|
extended_linear_address: [],
|
||||||
start_linear_address: 0,
|
start_linear_address: 0,
|
||||||
bytes: 0
|
bytes: 0
|
||||||
};
|
};
|
||||||
|
@ -56,12 +56,14 @@ function read_hex_file(data) {
|
||||||
break;
|
break;
|
||||||
case 0x02: // extended segment address record
|
case 0x02: // extended segment address record
|
||||||
// not implemented
|
// not implemented
|
||||||
|
console.log('extended segment address record found - NOT IMPLEMENTED !!!');
|
||||||
break;
|
break;
|
||||||
case 0x03: // start segment address record
|
case 0x03: // start segment address record
|
||||||
// not implemented
|
// not implemented
|
||||||
|
console.log('start segment address record found - NOT IMPLEMENTED !!!');
|
||||||
break;
|
break;
|
||||||
case 0x04: // extended linear address record
|
case 0x04: // extended linear address record
|
||||||
result.extended_linear_address = (parseInt(content.substr(0, 2), 16) << 24) | parseInt(content.substr(2, 2), 16) << 16;
|
result.extended_linear_address.push((parseInt(content.substr(0, 2), 16) << 24) | parseInt(content.substr(2, 2), 16) << 16);
|
||||||
break;
|
break;
|
||||||
case 0x05: // start linear address record
|
case 0x05: // start linear address record
|
||||||
result.start_linear_address = (parseInt(content.substr(0, 2), 16) << 24) | (parseInt(content.substr(2, 2), 16) << 16) | (parseInt(content.substr(4, 2), 16) << 8) | parseInt(content.substr(6, 2), 16);
|
result.start_linear_address = (parseInt(content.substr(0, 2), 16) << 24) | (parseInt(content.substr(2, 2), 16) << 16) | (parseInt(content.substr(4, 2), 16) << 8) | parseInt(content.substr(6, 2), 16);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue