@@ -498,6 +498,53 @@ ZTEST(flash_sim_api, test_flash_fill)
498
498
}
499
499
}
500
500
501
+ ZTEST (flash_sim_api , test_flash_mmap )
502
+ {
503
+ const uint8_t out [] = "Hello world!!!\n" ;
504
+ uint8_t in [64 ];
505
+ uint8_t * p ;
506
+ uint64_t size ;
507
+ int rc ;
508
+ #if defined(CONFIG_FLASH_SIMULATOR_EXPLICIT_ERASE )
509
+ rc = flash_erase (flash_dev , FLASH_SIMULATOR_BASE_OFFSET ,
510
+ FLASH_SIMULATOR_FLASH_SIZE );
511
+ zassert_equal (0 , rc , "flash_erase should succeed" );
512
+ #else
513
+ rc = flash_fill (flash_dev , FLASH_SIMULATOR_ERASE_VALUE ,
514
+ FLASH_SIMULATOR_BASE_OFFSET ,
515
+ FLASH_SIMULATOR_FLASH_SIZE );
516
+ zassert_equal (0 , rc , "flash_fill should succeed" );
517
+ #endif
518
+ zassert_ok (flash_mmap (flash_dev , (void * * )& p , & size , FLASH_MMAP_F_READ ));
519
+ zassert_ok (flash_write (flash_dev , FLASH_SIMULATOR_BASE_OFFSET , out ,
520
+ sizeof (out )));
521
+
522
+ zassert_ok (memcmp (p , out , sizeof (out )));
523
+
524
+ zassert_ok (flash_read (flash_dev , FLASH_SIMULATOR_BASE_OFFSET , in ,
525
+ sizeof (out )));
526
+ zassert_ok (memcmp (out , in , sizeof (out )));
527
+
528
+ #if defined(CONFIG_FLASH_SIMULATOR_EXPLICIT_ERASE )
529
+ rc = flash_erase (flash_dev , FLASH_SIMULATOR_BASE_OFFSET ,
530
+ FLASH_SIMULATOR_FLASH_SIZE );
531
+ zassert_equal (0 , rc , "flash_erase should succeed" );
532
+ #else
533
+ rc = flash_fill (flash_dev , FLASH_SIMULATOR_ERASE_VALUE ,
534
+ FLASH_SIMULATOR_BASE_OFFSET ,
535
+ FLASH_SIMULATOR_FLASH_SIZE );
536
+ zassert_equal (0 , rc , "flash_fill should succeed" );
537
+ #endif
538
+ zassert_ok (flash_mmap (flash_dev , (void * * )& p , & size , FLASH_MMAP_F_WRITE ));
539
+ memset (in , 0 , sizeof (in ));
540
+ /* Write via memcpy */
541
+ memcpy (p , out , sizeof (out ));
542
+ zassert_ok (memcmp (p , out , sizeof (out )));
543
+ zassert_ok (flash_read (flash_dev , FLASH_SIMULATOR_BASE_OFFSET , in ,
544
+ sizeof (out )));
545
+ zassert_ok (memcmp (out , in , sizeof (out )));
546
+ }
547
+
501
548
ZTEST (flash_sim_api , test_flash_flatten )
502
549
{
503
550
int rc ;
0 commit comments