Wopen=3 response


i have a modem which i use for testing and i have done many read/write operation on its flash up to now.

And yesterday it started to give ERROR responses to my AT+WOPEN=3 commands. Although it says ERROR, it erases the flash. When i start the application again, i can see that the flash has been erased. I am sure about modem has some data on its flash and AT+WOPEN=0 successfull before i send AT+WOPEN=3. But it responses unexpectly as ERROR although it seems to be successfull.

What can it be the reason?

Use AT+CMEE=1 to get the detailed error code.

thanks awneil;

i supplied at+CMEE=1 and i received +CME ERROR: 548.

i found on a documentation saying “No flash objects to delete”. But it has flash objects and has data on. this is strange i hope this wont be a worse problem later

Apparently, it doesn’t!

It shouldn’t be: the net result that you require is that there are no flash objects after running the command, isn’t it.

So, whether it finds some and deletes them, or finds none in the first place, both leave it in the required state! 8)

I suppose the real problem that you should be looking for is that the thing you thought should be creating flash objects isn’t!

so you mean that i think i create a flash object but i can not actually create? i m confused a little bit. first i create a flash object in a flash handle. then i write some data on it. i send at+wopen=0, then at+wopen=3 and it say “there are no flash object to delete so i couldnt delete anything”. and i suppose that the datas on the flash are still there but when i send at+wopen=1 i see they are not :S

You said it yourself!

No - I said you did not actually create it.

ie, I didn’t say it was not possible - it is just apparent that it didn’t actually happen.

How do you know that it was actually created?

Maybe that failed; or maybe your code never actually reached that point…

So i have to handle return values when i want to create a flash handle. You mean that my handle creation fails but i can not realise it.

there is one point i didnt understand. Can we just write/read some data on some handle/object even if we couldnt successfully create that handle?

Of course you do! Why would return values be provided if they were not to be used?!
Return values tell you stuff - ignore them at your peril!

This is basic programming stuff: always check all return values from all API calls - that applies to any API, not just ADL!

I mean if you don’t check the return values then you have no way of knowing whether or not the handle creation succeeded!

Currently, all the evidence points to the handle not having been created, doesn’t it?
So, unless you can provide some evidence that it has been created, the only conclusion that we can draw must be that the handle has not been created - mustn’t it?!

Obviously not - if the something doesn’t exist, how can you possibly use it?! :open_mouth:

thats why i didnt check the return values bc i can read the data which i try to write. So if i can read, then no problems must have happened with writing.

Now i check the return values and all are returning success code.
firstly i subscribe the flash handle with the number of flash objects .
Then i write some data on the first object of this handle. That returns success too.
Then i read this object of the handle and i get the data i wrote there.
Everything seems to work well.
Then i send wopen=0. after that, i get ERROR when i send wopen=3. i start the application by wopen=1. i try to read the data which i wrote the handle but i can not read it anymore.
That shows wopen=3 was successful but it returns ERROR (CME 548).

i suspect of reaching maximum number of read/write count bc this is my test modem and its flash is tired of written and read many times, actually i dont know what causes flash to react like this.

Hii zafer

Have u tried this with the latest SDK OASIS2.20 and Firmware R73 …??? i think there was a bug which was there in the previous firmware’s but i used the latest SDK & f/w and the CME 548 error did not occur…

hope this solves ur problem … :slight_smile:
cheers …!!! :smiley:

Hi paruthiv;

we use open at 663g so havent tried on R73. I even dont know wheater i can use R73 on my module (fastrack supreme 20) or not. But there isnt a big problem. it doesnt worth to change the firmware version. If it is a bug then i can be relax for some, at least this is not happening bc of me.

thank you

I met this problem too.And i cannot use ADL to creat a handle.My programm stopped.
My module is Q64, and How can i resolve the problem? :question:
Thanks a lot!




Why not?

Describe in detail exactly what you did, and exactly what happens…

Good afternoon all,

I can confirm that the response to the AT+WOPEN=3 has changed. Prior to R73 the response to the command was OK if there were flash objects that were then erased. If the wireless CPU did not find any to erase, it would report +CME ERROR: 548.

That said, the end result is the same. Eventhough there ARE flash objects, and the AT command responds with +CME ERROR: 548, the device’s object are indeed erased.

This does however seem to be resovled in R73a. (See ANO51170 in the CRN for R73a)