Pages: [1] 2
Author Topic: ROM vs Flash  (Read 17474 times)
ktm733
Hero Member
*****

Karma: +17/-6
Offline Offline

Posts: 645



« on: November 26, 2015, 11:05:01 PM »

this problably a dumb question but does ROM and FLash mean the same file? I though Rom image is the 1024k file that we read from our car right?
But the word flash also means the 1024kb file in my mind. I'm so confused! So I guess what I'm getting at is what files do you mean when clicking Rom or Flash?
thanks in advance
« Last Edit: May 20, 2016, 12:21:26 PM by ktm733 » Logged
DT
Full Member
***

Karma: +11/-1
Offline Offline

Posts: 165


« Reply #1 on: November 26, 2015, 11:52:33 PM »

this problably a dumb question but does ROM and FLash mean the same file? I though Rom image is the 1024k file that we read from our car right?
But the word flash also means the 1024kb file in my mind. I'm so confused! So I guess what I'm getting at is what files do you mean when clicking Rom or Flash?
thanks in advance
This clearly shows that you need to start a new thread in N00bz forum. This thread is not the place to ask such a question.
Flash file with 1024kb data or another file read by yourself from car with 1024kb flash data. Only diff would be version of flash data.
Logged
dream3R
Hero Member
*****

Karma: +17/-8
Offline Offline

Posts: 1194


« Reply #2 on: December 06, 2015, 08:44:37 PM »

It's basically the same thing different languages etc.

It's a flashable chip which holds the ROM and calibrations, ROM meaning the readonly part that generally doesn't get flashed.
Logged



How to work out values from an A2L Smiley

http://nefariousmotorsports.com/forum/index.php?topic=5525.msg52371#msg52371


Starting Rev's http://nefariousmotorsports.com/forum/index.php?topic=5397.msg51169#msg51169

noobs read this before asking http://nefariousmotorsports.com/forum/index.php?topic=9014.0title=


ORGORIGINAL 05 5120 creator for Volvo
ORIGINAL Datalogger (Freeware) Author
ORGINAL finder of the 'extra' torque' limits
I don't have ME7.01 A2L I just use ID
ktm733
Hero Member
*****

Karma: +17/-6
Offline Offline

Posts: 645



« Reply #3 on: May 18, 2016, 07:59:58 PM »

Thank you for the reply. That actually made sense.
Logged
dream3R
Hero Member
*****

Karma: +17/-8
Offline Offline

Posts: 1194


« Reply #4 on: May 19, 2016, 11:03:30 AM »

welcome
Logged



How to work out values from an A2L Smiley

http://nefariousmotorsports.com/forum/index.php?topic=5525.msg52371#msg52371


Starting Rev's http://nefariousmotorsports.com/forum/index.php?topic=5397.msg51169#msg51169

noobs read this before asking http://nefariousmotorsports.com/forum/index.php?topic=9014.0title=


ORGORIGINAL 05 5120 creator for Volvo
ORIGINAL Datalogger (Freeware) Author
ORGINAL finder of the 'extra' torque' limits
I don't have ME7.01 A2L I just use ID
nyet
Administrator
Hero Member
*****

Karma: +546/-135
Offline Offline

Posts: 11742


WWW
« Reply #5 on: May 19, 2016, 11:06:47 AM »

It's basically the same thing different languages etc.

It's a flashable chip which holds the ROM and calibrations, ROM meaning the readonly part that generally doesn't get flashed.

ERR

No. That isn't it at all.

ROM is READ ONLY, unlike flash.

In the ME7 context, it refers to the small amount of code embedded into the C16 processor to allow bootmode etc.

It doesn't exist outside the CPU

It may also refer to OTP (one time programmable) memory, which can be programmed once, but never again. An example of that might be serial number, VIN, or immo information.
Logged

ME7.1 tuning guide (READ FIRST)
ECUx Plot
ME7Sum checksum checker/corrrector for ME7.x

Please do not ask me for tunes. I'm here to help people make their own.

Do not PM me technical questions! Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience.
dream3R
Hero Member
*****

Karma: +17/-8
Offline Offline

Posts: 1194


« Reply #6 on: May 19, 2016, 11:13:24 AM »

It's muddy waters lol, in ME7 the PBL is ROM basically, sometimes it's in the CPU memory (which is writeable) or sometimes it's in the main flash.
Logged



How to work out values from an A2L Smiley

http://nefariousmotorsports.com/forum/index.php?topic=5525.msg52371#msg52371


Starting Rev's http://nefariousmotorsports.com/forum/index.php?topic=5397.msg51169#msg51169

noobs read this before asking http://nefariousmotorsports.com/forum/index.php?topic=9014.0title=


ORGORIGINAL 05 5120 creator for Volvo
ORIGINAL Datalogger (Freeware) Author
ORGINAL finder of the 'extra' torque' limits
I don't have ME7.01 A2L I just use ID
nyet
Administrator
Hero Member
*****

Karma: +546/-135
Offline Offline

Posts: 11742


WWW
« Reply #7 on: May 19, 2016, 12:04:26 PM »

Also, the subject of this topic is distressing.

It is annoying that people aren't very detail oriented.

It's kinda critical for tuning. If you can't be bothered to spell things correctly....
Logged

ME7.1 tuning guide (READ FIRST)
ECUx Plot
ME7Sum checksum checker/corrrector for ME7.x

Please do not ask me for tunes. I'm here to help people make their own.

Do not PM me technical questions! Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience.
dream3R
Hero Member
*****

Karma: +17/-8
Offline Offline

Posts: 1194


« Reply #8 on: May 19, 2016, 06:13:15 PM »

Just a typo, it might not be his first language Smiley
Logged



How to work out values from an A2L Smiley

http://nefariousmotorsports.com/forum/index.php?topic=5525.msg52371#msg52371


Starting Rev's http://nefariousmotorsports.com/forum/index.php?topic=5397.msg51169#msg51169

noobs read this before asking http://nefariousmotorsports.com/forum/index.php?topic=9014.0title=


ORGORIGINAL 05 5120 creator for Volvo
ORIGINAL Datalogger (Freeware) Author
ORGINAL finder of the 'extra' torque' limits
I don't have ME7.01 A2L I just use ID
nyet
Administrator
Hero Member
*****

Karma: +546/-135
Offline Offline

Posts: 11742


WWW
« Reply #9 on: May 19, 2016, 07:54:52 PM »

Just a typo, it might not be his first language Smiley

I have yet to spell schubumluftventil incorrectly Tongue
Logged

ME7.1 tuning guide (READ FIRST)
ECUx Plot
ME7Sum checksum checker/corrrector for ME7.x

Please do not ask me for tunes. I'm here to help people make their own.

Do not PM me technical questions! Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience.
SB_GLI
Hero Member
*****

Karma: +110/-10
Offline Offline

Posts: 1022


« Reply #10 on: May 20, 2016, 11:21:11 AM »

It's his first language.  Nyet hit the nail on the head.  At least he's getting better with punctuation.
« Last Edit: May 20, 2016, 11:22:44 AM by SB_GLI » Logged
SB_GLI
Hero Member
*****

Karma: +110/-10
Offline Offline

Posts: 1022


« Reply #11 on: May 20, 2016, 11:24:05 AM »

I have yet to spell schubumluftventil incorrectly Tongue

don't you mean "diverted valve"?
Logged
ktm733
Hero Member
*****

Karma: +17/-6
Offline Offline

Posts: 645



« Reply #12 on: May 20, 2016, 12:22:08 PM »

Just a typo, it might not be his first language Smiley

Fixed sorry
Logged
360trev
Full Member
***

Karma: +50/-1
Offline Offline

Posts: 205


« Reply #13 on: November 25, 2020, 12:59:04 PM »

I am sure most of this has been said before but here goes..

I think it would be extremely useful for novices (and some experienced old hands too) to delve into doing some proper embedded microcontroller software development *first* before trying to understand all of the information scattered on here.

Having spent decades working in the industrial automation and embedded devices in general with plenty of hands-on experience of so many different architectures I can say it really does help, a lot. Many concepts are verbatim carry over. What is extremely useful is that you'll see many of the things described in terms of hardware are pretty much identical concepts on other controllers too. You really need to understand terms like GPIO, SPI, I2C, ADC, PWM, DAC, CAN, UART Serial, DMA, EEPROM, Flash, etc. etc. Many of these things are just implemented differently due to the quirks and specifics of these 20+ year old designs), they are all. I would also strongly recommend getting a development board that supports an open source RTOS (Real time operating System) and get to grips with all of the concepts. They are used throughout ME7 code because Bosch acquired a company, ETAS whom did a lot of the ME7 hard real-time requirements work using ERCOS (Embedded Real-time Control Operating System). Its basically an automotive RTOS so any experience of a RTOS will come in extremely useful.

Its worth realizing that Bosch didn't really design the architecture of the hardware used for any of their ME7's ecu's. It was imposed upon them when they chose to use a pair of inexpensive 16-Bit Siemens microcontroller of the day, the C16x family of microcontrollers. Later rights acquired by ST and Infineon at various stages before they became end of life. In fact Bosch hardware designers basically used what is called a ' reference design ' in Industry terminology and tweaked it to their needs. Back in the day Bosch also acquired other chip designs (or licensed them) and had them re-badged with their own brand but many are in fact common parts adapted or simply rebranded in some cases.

So for instance Throttle bodies are controlled via PWM (Pulse Wave Modulation) which in turn go into an external 'H-Bridge chip' to drive the current required for a high powered DC-Motor control. Since Bosch licensed many of these chips (as they knew they'd be manufacturing millions of them, so it made sense) you'll often find them described with strange non standard descriptions

If your extremely lucky you can still find the occasional development board become available on ebay which is extremely useful to learn with. However even if you cannot find the same processor just playing with a 16-bit embedded controller will teach you so many concepts and these will allow you to understand far better a lot of the underlying areas of confusion often expressed here time again.

On the various term's. There is a lot of confusion but quite simply put...

ROM - Read ONLY Memory
RAM - Random Access Memory.
FLASH - Read only Memory that persists a power off state. While being read only in normal state is typical, it can be re-programmed electrically using a specially timed sequence of commands and control logic. This is called 'reflashing' or 'reprogramming'.
OTP - One Time Programmable Memory. Once its programmed its burned, normally a the chip level by blowing an internal fuse which locks its state so it cannot be altered again after factory programming. Often these are faked on modern controllers so if you know the unlock codes you can infact re-program OTP but that's a different discussion altogether  Smiley

In the ME7 world there is some confusion as people use the terms ROM and Flash interchangeably. Actually this may have come from the fact that different 'strains' of the C167's came shipped with different variants of configuration and also its common to refer to 'Boot ROM'. Some C167's have OTP but also there are Flashable versions too. You can see what model you have by looking at the datasheet to understand the letters after the chip designation. e.g. C167SR (etc.).

Here's where it gets a little bit more complex on the ME7x's...

You have multiple types of Storage AND multiple types of RAM too (i.e. memory that's bit states do not persist after power is lost, the data and code needs to be reloaded every power up). Each different type of ram also comes with its own address maps (i.e ranges of addresses where its state is accessed and stored.). Understanding the difference between IRAM (Internal RAM) and External RAM (XRAM) is vital to understanding too. Again just like for flash the microcontroller was designed with a small amount of internal ram fitted but its so small that to accomplish something as complex as ME7 required additional ram fitting.

Lets describe them;
INTERNAL Flash (Also referenced as Boot ROM but in theory you could put your entire app inside Internal flash provided it could fit!). Its internal to the Microcontroller so not on external pins. Different versions have different sizes depending on the requirements at the time of manufacture.
EXTERNAL Flash (Separate to the Micro controller and often much larger than the internal Flash).

On the C167's they only supported 32Kbytes of Internal flash which wasn't enough to store the large quantity of code space required to implement all of the self tests and standards.

From a software perspective, apart from RTOS and GPIO, along with the various drivers like SPI, I2C, etc. I would also learn about KWP2000 protocol and J1979 Diagnostics, McMess and plethora of P-Code mandated Self Tests.  From my experience of looking at the Bosch code I would argue easily 80% of the code is self tests, etc. You could probably control the sensors and actuators with significantly less complicated software but the majority of the code is indeed all the standards it needed to implement such as OBD KWP Smog tests etc.
 
If you really want some good advice I would experiment with Arduino, then advance on to using an STM32 Microcontroller with C and assembly drivers and learn about all how to control all the sensors and actuators found in your vehicle. Once you know how all of this stuff works you can then begin to understand the code itself.
Logged
ktm733
Hero Member
*****

Karma: +17/-6
Offline Offline

Posts: 645



« Reply #14 on: November 25, 2020, 09:30:10 PM »

This is a gold mine of information! Very well laid out sir. Five years later and this sticky still provides great information.

Nyet.. You nailed it on the head five years ago. Punctuation is key when it comes to tuning. I was a noob and didn't understand it at the time. Tuning is like coding. One bit off and the code doesn't work at all. Thank you guys al for the information you provide through out the years.

SB_GLI... Thanks for calling me out, lol! I can finally spell definitely the correct way. Grin
Logged
Pages: [1] 2
  Print  
 
Jump to:  

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Page created in 0.024 seconds with 17 queries. (Pretty URLs adds 0.001s, 0q)