1. THÔNG BÁO TUYỂN ADMIN DIỄN ĐÀN 2013
    Tìm kiếm nhà trọ - Ở ghép
    THÔNG BÁO BÁN ÁO SPKT.NET CHO THÀNH VIÊN DIỄN ĐÀN


    HÃY TÌM KIẾM Ở ĐÂY TRƯỚC KHI ĐẶT CÂU HỎI
    {xen:phrase loading}

Tìm hiểu hệ thống nhúng - lập trình nhúng

Thảo luận trong 'Lập trình nhúng' bắt đầu bởi linhdong, 4 Tháng ba 2012.

  1. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Mình thấy lĩnh vực lập trình nhúng khá hay nhưng cũng khá mới mẻ...đặc biệt là đối với các bạn ngành kỹ thuật máy tính. Không biết có cách nào để tạo 1 không gian riêng để các bạn cùng nhau nghiên cứu và trao đổi kinh nghiệm hay không? Mình bên KMT..không biết các bạn thấy thế nào?xin đóng góp ý kiến nha..!

    [IMG]
    [IMG]
    [IMG]


    Trên đây là 1 trong những loại kít nhúng hiện đang sử dụng phổ biến nhất...môn này chủ yếu là tự thực hành và tìm hiểu là chủ yếu. Sẽ rất khó hình dung nếu chỉ học lý thuyết..!
  2. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    Hình như các bạn khóa 09 đang học môn chuyên đề về hệ thống nhúng mà,nếu trong quá trình học có gì không hiểu thì cứ post lên mọi người cùng nhau giải quyết để bước đầu hình dung được hệ thống nhúng là gì? hoặc trong quá trình thực hành nếu làm không được thì cứ post lên.!
  3. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Re: Tạo khu vực gianh riêng cho các bạn yêu thích lập trình nhúng..!

    Nghe nói đâu các bạn kmt09 học chuyên đề lập trình nhúng có thực hành hay tìm hiểu về cái kit nào đó phải không?không biết đó là loại nào zậy?
  4. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Re: Tạo khu vực gianh riêng cho các bạn yêu thích lập trình nhúng..!

    Hệ Thống Nhúng - Hướng đi mới của Việt Nam..!

    Xuất hiện từ những năm đầu thập niên 1960, hệ thống nhúng đang dần trở thành một ngành phát triển mạnh mẽ trong lĩnh vực công nghệ thông tin (CNTT), với những ứng dụng rộng rãi trong công nghiệp và đời sống.
    Theo các chuyên gia, ước tính đến năm 2010, doanh số của thị trường phần mềm cho hệ thống nhúng toàn cầu sẽ đạt cột mốc 6 tỷ đô-la Mỹ(1). Điều dự báo nói trên, cùng với sự xuất hiện ngày càng nhiều các đối tác lớn trong lĩnh vực này tại Việt Nam, đã mở ra một hướng đi mới cho thị trường phần mềm của chúng ta trong tương lai.


    [IMG]
    Khác với những lập trình viên thông thường,
    một lập trình viên hệ thống nhúng phải có sự
    năng động và khả năng học hỏi tốt để có thể
    làm việc tối ưu.




    Những đặc trưng của hệ thống nhúng
    Hệ thống nhúng (embedded system) được định nghĩa là một hệ thống chuyên dụng, thường có khả năng tự hành và được thiết kế tích hợp vào một hệ thống lớn hơn để thực hiện một chức năng chuyên biệt nào đó.
    Khác với các máy tính đa chức năng (multi-purposes computers), ví dụ như máy vi tính cá nhân (PC), một hệ thống nhúng thường chỉ thực hiện một hoặc một vài chức năng nhất định. Hệ thống nhúng bao gồm cả thiết bị phần cứng và phần mềm, hầu hết đều phải thỏa mãn yêu cầu hoạt động theo thời gian thực (real-time).
    Tùy theo tính chất và yêu cầu, mức độ đáp ứng của hệ thống có thể phải là rất nhanh (ví dụ như hệ thống thắng trong xe hơi hoặc điều khiển thiết bị trong nhà máy), hoặc có thể chấp nhận một mức độ chậm trễ tương đối (ví dụ như điện thoại di động, máy lạnh, ti-vi).
    Để có thể dễ hình dung, ta xem ví dụ sau đây: một chiếc xe hơi trung bình có khoảng 70-80 chip vi xử lý (micro controller unit), mỗi bộ vi xử lý đảm nhiệm một nhiệm vụ, chẳng hạn như đóng mở cửa, điều khiển đèn tín hiệu, đo nhiệt độ trong/ngoài xe, hiển thị giao diện người dùng (dashboard), điều khiển thắng (nếu dùng hệ thống thắng điện)…

    [IMG]

    Mỗi bộ phận như thế là một hệ thống nhúng, tất cả được thiết kế tích hợp vào một hệ thống chung lớn hơn, chính là chiếc xe hơi. Một ví dụ khác gần gũi hơn với cuộc sống hằng ngày, đó là những chiếc điện thoại di động. Các chức năng như điều khiển màn hình hiển thị, máy nghe nhạc và radio, bộ cảm ứng chụp hình, kết nối với máy tính và thiết bị ngoại vi, hoặc cao cấp hơn là kết nối với hệ thống định vị toàn cầu (GPS), tất cả đều là những hệ thống nhúng được tích hợp chung vào chiếc điện thoại.
    Do tính chất chuyên biệt của hệ thống nhúng và chúng thường được sản xuất với số lượng lớn nên các nhà sản xuất thường yêu cầu phải tối ưu hóa chúng nhằm giảm thiểu kích thước và chi phí sản xuất. Những yêu cầu đó đã đưa đến những khác biệt cơ bản trong lĩnh vực viết phần mềm cho hệ thống nhúng so với các phần mềm thông thường.
    Thứ nhất, có rất nhiều hãng sản xuất bộ vi xử lý, phần cứng và phần mềm trong thị trường hệ thống nhúng và ứng với mỗi nhà sản xuất lại có nhiều dòng sản phẩm, phong phú về chủng loại và giá thành. Các nhà thiết kế thường có những sự lựa chọn rất khác nhau về kiến trúc phần cứng và phần mềm cho các hệ thống của mình. Vì vậy, khác với những lập trình viên thông thường như lập trình web hay lập trình ứng dụng (application), chỉ cần thông thạo một vài ngôn ngữ lập trình, hệ điều hành và chương trình khung (framework) là có thể làm việc có hiệu quả, một lập trình viên hệ thống nhúng phải có sự năng động và khả năng học hỏi tốt để có thể làm việc tối ưu với:
    - Những bộ vi xử lý và phần cứng khác nhau: Texas Instrument, Freescale, ARM, Intel, Motorola, Atmel, AVR, Renesas…
    - Những hệ điều hành khác nhau : QNX, uITRON, VxWorks, Windows CE/XP Embedded, Embedded Linux, Osek, Symbian…
    - Những ngôn ngữ lập trình khác nhau : C/C++, B#, Ada, Assembly, PMC, LabView, PLC…
    Thứ hai, bên cạnh sự đa dạng về kiến thức chuyên môn của lập trình viên, còn có sự đa dạng về sản phẩm đầu ra như: y tế, công nghiệp ô-tô, tự động hóa, điện tử gia dụng, viễn thông, quốc phòng… Điều này đòi hỏi những người làm việc trong ngành hệ thống nhúng phải có khả năng thích ứng cao với nhiều dạng dự án và lĩnh vực hoạt động khác nhau.
    Thứ ba, các hệ thống nhúng thường cần có sự kết hợp liền lạc giữa phần cứng và phần mềm. Do đó, lập trình cho hệ thống nhúng cũng đòi hỏi phải có sự giao tiếp và làm việc mật thiết giữa đội ngũ lập trình viên và những người thuộc các lĩnh vực khác như tự động hóa, phần cứng, cơ điện tử… Tùy vào lĩnh vực, bên cạnh những kiến thức về CNTT thông thường, trong một số trường hợp người lập trình hệ thống nhúng cần phải bổ sung thêm một số kiến thức nhất định về trình biên dịch (compiler), xử lý tín hiệu số, điện tử và sơ đồ mạch (schematics)… để có thể làm việc có hiệu quả với những nhóm khác.
    Tất cả những khác biệt đó vừa là thách thức, khiến cho chỉ có ít người có thể trụ lại lâu dài, vừa là động lực, giữ chân những người thật sự đam mê, thích khám phá và không thích sự nhàm chán.

    Phân khúc thị trường hệ thống nhúng

    [IMG]

    Hệ thống nhúng vốn rất đa dạng và phong phú, tuy nhiên có rất ít người biết được tầm quan trọng và sự hiện hữu của chúng trong thế giới quanh ta. Từ những hệ thống phức tạp như hàng không vũ trụ, phòng thủ quân sự, máy móc tự động trong công nghiệp, đến những phương tiện di chuyển thông thường như máy bay, xe điện, xe hơi, các trang thiết bị y tế trong bệnh viện, cho tới những thiết bị truyền hình và điện thoại di động chúng ta sử dụng hằng ngày, đâu đâu cũng có sự hiện diện của hệ thống nhúng.
    Trong hơn 9 tỷ bộ vi xử lý được sản xuất hằng năm, chỉ có khoảng 150 triệu bộ (1,5%) được sử dụng cho máy vi tính cá nhân, phần còn lại (98,5%) là dành cho hệ thống nhúng (2).
    Theo một thống kê khác của BCC Research Group (4) thì đến năm 2009, tổng doanh số của thị trường hệ thống nhúng trên toàn cầu sẽ đạt khoảng 88 tỷ đô-la Mỹ, với phần cứng chiếm 78 tỷ đô-la Mỹ và phần mềm chiếm 3,5 tỷ đô-la Mỹ, phần còn lại là các bo mạch nhúng. Tốc độ tăng trưởng trung bình hằng năm (AAGR) của phần mềm nhúng hiện đang đạt mức 16%.

    [IMG]


    Hướng phát triển cho ngành phần mềm hệ thống nhúng tại Việt Nam


    Hiện nay, lĩnh vực hệ thống nhúng tại Việt Nam mới chỉ có những bước đi chập chững ban đầu, với rất ít sản phẩm “Made in Vietnam” có thể ứng dụng vào thực tế. Công việc chủ yếu vẫn là gia công phần mềm cho nước ngoài, trong đó chiếm tỷ lệ lớn nhất là các thị trường Nhật, Mỹ và châu Âu. Rất nhiều hãng sản xuất phần mềm lớn đã và đang “đổ bộ” vào thị trường Việt Nam để tận dụng lợi thế nguồn nhân lực giá rẻ và khai thác một thị trường tiềm năng mới như IBM, CSC, Altera…
    Tuy nhiên, Việt Nam hiện đang đối đầu với một thách thức lớn, đó là “đầu vào” của nguồn nhân lực cho thị trường phần mềm nói chung và phần mềm cho hệ thống nhúng nói riêng. Ở lĩnh vực phần mềm đơn thuần, một nhân viên mới vào nghề chỉ cần từ ba đến sáu tháng huấn luyện là đã có thể làm tốt công việc được giao. Còn trong ngành gia công phần mềm cho hệ thống nhúng, một nhân viên mới cần ít nhất sáu tháng đến một năm để có thể bắt đầu làm việc có hiệu quả, và từ hai đến ba năm mới có thể làm việc thành thạo. Việc tuyển người và đào tạo đã khó, việc giữ người lại càng khó hơn.
    Đặc thù của ngành này là đòi hỏi nhân viên phải có sự kiên trì và bền bỉ để nắm bắt những kiến thức cần thiết, đồng thời cần một thời gian khá dài mới có thể thấy được thành quả. Đó là lý do tỷ lệ chuyển và nghỉ việc trong lĩnh vực này là khá cao, trung bình 12-20%. Tuy nhiên, những người gắn bó được với ngành cũng có được những phần thưởng tương xứng, tích lũy được nhiều kiến thức về phần mềm và phần cứng liên quan, cũng như thường xuyên có được sự đổi mới, tránh nhàm chán trong công việc.
    Một điểm yếu khác góp phần làm hạn chế sự phát triển của ngành gia công phần mềm tại Việt Nam chính là nhân viên thiếu khả năng giao tiếp bằng tiếng Anh và các kỹ năng mềm như khả năng thuyết trình, làm việc theo nhóm, quản lý thời gian… Như trên đã nói, các nhân viên trong ngành hệ thống nhúng cần phải có sự giao tiếp chặt chẽ với khách hàng và các nhóm làm việc nước ngoài khác.
    Tiếng Anh và các kỹ năng mềm chính là tiếng nói chung giúp mọi người có thể hiểu và làm việc với nhau hữu hiệu. Tuy nhiên, hiện nay trình độ tiếng Anh của các sinh viên mới ra trường phần lớn không đáp ứng được yêu cầu của nhà tuyển dụng, còn các kỹ năng mềm thì không được chú trọng. Bên cạnh việc đào tạo về kỹ thuật, các công ty còn cần phải huấn luyện thêm khá nhiều về tiếng Anh và các kỹ năng mềm để những nhân viên mới có thể theo kịp và đáp ứng được những yêu cầu cơ bản trong một môi trường làm việc đa văn hóa.
    Muốn phát triển ngành phần mềm hệ thống nhúng lên một tầm cao mới như có thể sản xuất, ứng dụng thực tế và xuất khẩu phần mềm nhúng của Việt Nam, điều tiên quyết là phải tập trung phát triển lĩnh vực nghiên cứu và phát triển (R&D). Hiện nay chúng ta đã có một số chương trình hợp tác với các hãng lớn ở nước ngoài như Toshiba, Panasonic, STMicroelectronics, Samsung…(5) để phát triển theo hướng này.
    Tuy nhiên, những chương trình như thế vẫn còn rất hạn chế và không có một định hướng chiến lược chung. Việt Nam cần phải đẩy mạnh hơn nữa vấn đề định hướng nghiên cứu và phát triển cho ngành hệ thống nhúng từ trong trường đại học và các trung tâm nghiên cứu, cũng như trang bị được những kiến thức tổng quát về lĩnh vực này cho những sinh viên trẻ, đáp ứng được nhu cầu ngày càng cao của nhà tuyển dụng.
    Trong tương lai, nếu Việt Nam muốn nâng cao khả năng cạnh tranh với các nước chuyên gia công phần mềm lớn khác như Trung Quốc, Ấn Độ…, cần phải tập trung giải quyết bài toán tăng cường tính hiệu quả của nguồn nhân lực, phát triển tập trung theo chiều sâu thay vì chiều rộng như hiện nay. Trình độ chuyên môn của chúng ta trong lĩnh vực phần mềm nhúng hiện nay là tương đối “chắp vá” theo kiểu chỉ đâu làm đó, thiếu sự đầu tư và chiến lược phát triển hợp lý.
    Chúng ta cần có thêm nhiều chương trình đào tạo chuyên ngành về hệ thống nhúng từ trong trường đại học và các cơ sở đào tạo chính quy. Đồng thời, mở rộng cửa đón các nhà đầu tư để học hỏi những kỹ thuật mới và chuyển giao công nghệ, nhưng quá trình này phải thực hiện một cách có chọn lọc và kiểm soát, tránh tình trạng biến Việt Nam thành “bãi đáp” tiếp nhận những công nghệ lỗi thời như ở một số ngành công nghiệp khác.



    HỒ NGUYÊN ĐẠT - Trưởng dự án - hệ thống nhúng của Công ty Global CyberSoft Việt Nam
  5. user001 New Member

    Số bài viết: 306
    Đã được thích: 3
    Điểm thành tích: 0
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    thầy giao cho con sam9260 :( mới được cầm qua, chưa biết làm j hết
  6. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    Share cho các bạn luận văn tốt nghiệp của KMT07 về phát triển kit nhúng dựa trên sam9260..! xem sơ qua thử có ngộ được gì hok nha..:p
    thanks cái để cổ vũ tinh thần nha.!
    pass giải nén: linhdong24
    http://www.mediafire.com/?mc4f0qbd76bg5zs

    kokori0906 thích bài này.
  7. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    TỔNG QUAN VỀ VI ĐIỀU KHIỂN
    AT91SAM9260
    Thành phần quan trọng nhất cấu tạo nên một hệ thống nhúng chính là vi xử lý, vi điều khiển. Vi xử lý, vi điều khiển quyết định đến tính năng, hiệu quả ứng dụng của hệ thống nhúng. Vì vậy trước khi nghiên cứu về hệ thống nhúng thì chúng ta phải có một kiến thức căn bản về vi xử lý của hệ thống nhúng.
    Kit nhúng KM9260 được xây dựng dựa trên nền vi điều khiển AT91SAM9260. Là vi điều khiển 32 bit thuộc họ ARM9 tiết kiệm năng lượng.
    Trong phần này sẽ trình bày sơ lược các kiến thức về AT91SAM9260. Vì lập trình cho hệ thống nhúng không đặt nặng kiến thức về cấu trúc của vi xử lý. Nên trong phần này chỉ trình bày những kiến thức cần thiết cho quá trình sử dụng kit sau này như: sơ đồ chân của AT91SAM9260, nguồn cung cấp cho AT91SAM9260, bản đồ quản lý vùng nhớ của AT91SAM9260.
    Trong vi điều khiển có tích hợp nhiều module ngoại vi khác nhau, kiến thức về từng module sẽ được trình bày trong mỗi bài thí nghiệm với các thiết bị ngoại vi khác nhau.
  8. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    I. Họ vi điều khiển ARM:
    Cấu trúc ARM (viết tắt từ tên gốc là Acorn RISC Machine) là một loại cấu trúc vi xử lý 32bit kiểu RISC được sử dụng rộng rãi trong các thiết kế nhúng. Do có đặc điểm tiết kiệm năng lượng, các bộ CPU ARM chiếm ưu thế trong các sản phẩm điện tử di động, mà với các sản phẩm này việc tiêu tán công suất thấp là một mục tiêu thiết kế quan trọng hàng đầu.
    Ngày nay, hơn 75% CPU nhúng 32bit là thuộc họ ARM, điều này khiến ARM trở thành cấu trúc 32bit được sản xuất nhiều nhất trên thế giới. CPU ARM được tìm thấy khắp nơi trong các sản phẩm thương mại điện tử, từ thiết bị cầm tay (PDA, điện thoại di động, máy đa phương tiện, máy trò chơi cầm tay, và máy tính cầm tay) cho đến các thiết bị ngoại vi máy tính (ổ đĩa cứng, bộ định tuyến để bàn.) Một nhánh nổi tiếng của họ ARM là các vi xử lý Xscale của Intel.
    Việc thiết kế ARM được bắt đầu từ năm 1983 trong một dự án phát triển của công ty máy tính Acorn.
    Nhóm thiết kế, dẫn đầu bởi Roger Wilson và Steve Furber, bắt đầu phát triển một bộ vi xử lý có nhiều điểm tương đồng với Kỹ thuật MOS 6502 tiên tiến. Acorn đã từng sản xuất nhiều máy tính dựa trên 6502, vì vậy việc tạo ra một chip như vậy là một bước tiến đáng kể của công ty này.
    Nhóm thiết kế hoàn thành việc phát triển mẫu gọi là ARM1 vào năm 1985, và vào năm sau, nhóm hoàn thành sản phẩm “thực”gọi là ARM2. ARM2 có tuyến dữ liệu 32bit, không gian địa chỉ 26bit tức cho phép quản lý đến 64 Mbyte địa chỉ và 16 thanh ghi 32bit. Một trong những thanh ghi này đóng vai trò là bộ đếm chương trình với 6 bit cao nhất và 2 bit thấp nhất lưu giữ các cờ trạng thái của bộ vi xử lý.
    Có thể nói ARM2 là bộ vi xử lý 32bit khả dụng đơn giản nhất trên thế giới, với chỉ gồm 30.000 transistor (so với bộ vi xử lý lâu hơn bốn năm của Motorola là 68000 với khoảng 68.000 transistor). Sự đơn giản như vậy có được nhờ ARM không có vi chương trình (mà chiếm khoảng 1/4 đến 1/3 trong 68000) và cũng giống như hầu hết các CPU vào thời đó, không hề chứa cache. Sự đơn giản này đưa đến đặc điểm tiêu thụ công suất thấp của ARM. Thế hệ sau ARM3 được tạo ra với 4KB cache và có chức năng được cải thiện tốt hơn nữa.
    Vào những năm cuối thập niên 80, hãng máy tính Apple Computer bắt đầu hợp tác với Acorn để phát triển các thế hệ lõi ARM mới . Công việc này trở nên quan trọng đến nỗi Acorn nâng nhóm thiết kế trở thành một công ty mới gọi là Advanced RISC Machines. Vì lý do đó bạn thường được giải thích ARM là chữ viết tắt của Advanced RISC Machines thay vì Acorn RISC Machine. Advanced RISC Machines trở thành công ty ARM Limited khi công ty này được đưa ra sàn chứng khoán London và NASDAQ năm 1998.
    Kết quả sự hợp tác này là ARM6. Mẫu đầu tiên được công bố vào năm 1991 và Apple đã sử dụng bộ vi xử lý ARM 610 dựa trên ARM6 làm cơ sở cho PDA hiệu Apple Newton. Vào năm 1994, Acorn dùng ARM 610 làm CPU trong các máy vi tính RiscPC của họ.
    Trải qua nhiều thế hệ nhưng lõi ARM gần như không thay đổi kích thước. ARM2 có 30.000 transistors trong khi ARM6 chỉ tăng lên đến 35.000. Ý tưởng của nhà sản xuất lõi ARM là sao cho người sử dụng có thể ghép lõi ARM với một số bộ phận tùy chọn nào đó để tạo ra một CPU hoàn chỉnh, một loại CPU mà có thể tạo ra trên những nhà máy sản xuất bán dẫn cũ và vẫn tiếp tục tạo ra được sản phẩm với nhiều tính năng mà giá thành vẫn thấp.
    Thế hệ thành công nhất có lẽ là ARM7TDMI với hàng trăm triệu lõi được sử dụng trong các máy điện thoại di động, hệ thống video game cầm tay, và Sega Dreamcast. Trong khi công ty ARM chỉ tập trung vào việc bán lõi IP, cũng có một số giấy phép tạo ra bộ vi điều khiển dựa trên lõi này.
    Dreamcast đưa ra bộ vi xử lý SH4 mà chỉ mượn một số ý tưởng từ ARM (tiêu tán công suất thấp, tập lệnh gọn …) nhưng phần còn lại thì khác với ARM. Dreamcast cũng tạo ra một chip xử lý âm thanh được thiết kế bởi Yamaha với lõi ARM7. Bên cạnh đó, Gameboy Advance của Nintendo, dùng ARM7 TDMI ở tần số 16,78 MHz.
    Hãng DEC cũng bán giấy phép về lõi cấu trúc ARM (đôi khi chúng ta có thể bị nhầm lẫn vì họ cũng sản xuất ra DEC Alpha) và sản xuất ra thế hệ Strong ARM. Hoạt động ở tần số 233 MHz mà CPU này chỉ tiêu tốn khoảng 1 watt công suất (những đời sau còn tiêu tốn ít công suất hơn nữa). Sau những kiện tụng, Intel cũng được chấp nhận sản xuất ARM và Intel đã nắm lấy cơ hội này để bổ sung vào thế hệ già cỗi i960 của họ bằng Strong ARM. Từ đó, Intel đã phát triển cho chính họ một sản phẩm chức năng cao gọi tên là Xscale.
    Các họ vi xử lý ARM
    [TABLE="width: 541"]
    [TR]
    [TD]Họ
    [/TD]
    [TD]Lõi
    [/TD]
    [TD]Tốc độ xử lý tối đa (MHz)
    [/TD]
    [TD]Kiến trúc
    [/TD]
    [/TR]
    [TR]
    [TD]ARM7TDMI
    [/TD]
    [TD]ARM7TDMIS
    [/TD]
    [TD]16.8 MHz
    [/TD]
    [TD]V4T
    [/TD]
    [/TR]
    [TR]
    [TD]ARM710T
    [/TD]
    [TD]40 MHz
    [/TD]
    [/TR]
    [TR]
    [TD]ARM720T
    [/TD]
    [TD]59.8 MHz
    [/TD]
    [/TR]
    [TR]
    [TD]ARM740T
    [/TD]
    [TD]
    [/TD]
    [/TR]
    [TR]
    [TD]ARM7EJS
    [/TD]
    [TD]
    [/TD]
    [/TR]
    [TR]
    [TD]ARM9TDMI
    [/TD]
    [TD]ARM9TDMI
    [/TD]
    [TD]
    [/TD]
    [TD]V4T
    [/TD]
    [/TR]
    [TR]
    [TD]ARM920T
    [/TD]
    [TD]180 MHz
    [/TD]
    [/TR]
    [TR]
    [TD]ARM922T
    [/TD]
    [TD]
    [/TD]
    [/TR]
    [TR]
    [TD]ARM940T
    [/TD]
    [TD]
    [/TD]
    [/TR]
    [TR]
    [TD]ARM9E
    [/TD]
    [TD]ARM946ES
    [/TD]
    [TD]
    [/TD]
    [TD]V5TE

    V5TEJ
    [/TD]
    [/TR]
    [TR]
    [TD]ARM966ES
    [/TD]
    [TD]
    [/TD]
    [/TR]
    [TR]
    [TD]ARM968ES
    [/TD]
    [TD]
    [/TD]
    [/TR]
    [TR]
    [TD]ARM926EJS
    [/TD]
    [TD]180 MHz
    [/TD]
    [/TR]
    [TR]
    [TD]ARM996HS
    [/TD]
    [TD]
    [/TD]
    [/TR]
    [TR]
    [TD]ARM10E
    [/TD]
    [TD]ARM1020E
    [/TD]
    [TD]
    [/TD]
    [TD]V5TE

    V5TEJ
    [/TD]
    [/TR]
    [TR]
    [TD]ARM1022E
    [/TD]
    [TD]
    [/TD]
    [/TR]
    [TR]
    [TD]ARM1026EJS
    [/TD]
    [TD]
    [/TD]
    [/TR]
    [TR]
    [TD]ARM11
    [/TD]
    [TD]ARM1136J(F)S
    [/TD]
    [TD]
    [/TD]
    [TD]V6
    [/TD]
    [/TR]
    [TR]
    [TD]ARM1156T2(F)S
    [/TD]
    [TD]
    [/TD]
    [TD]V6T2
    [/TD]
    [/TR]
    [TR]
    [TD]ARM1176JZ(F)S
    [/TD]
    [TD]
    [/TD]
    [TD]V6Z
    [/TD]
    [/TR]
    [TR]
    [TD]ARM11 MPCore
    [/TD]
    [TD]
    [/TD]
    [TD]V6
    [/TD]
    [/TR]
    [TR]
    [TD]Cortex
    [/TD]
    [TD]CortexA8
    [/TD]
    [TD]1 GHz
    [/TD]
    [TD]V7A
    [/TD]
    [/TR]
    [TR]
    [TD]CortexR4
    [/TD]
    [TD]600 MHz
    [/TD]
    [TD]V7M
    [/TD]
    [/TR]
    [TR]
    [TD]CortexM3
    [/TD]
    [TD]100MHz
    [/TD]
    [TD]V7R
    [/TD]
    [/TR]
    [TR]
    [TD]XScale
    [/TD]
    [TD]80200/IOP310/IOP315
    [/TD]
    [TD]
    [/TD]
    [TD]
    [/TD]
    [/TR]
    [/TABLE]

    [TABLE="width: 541"]
    [TR]
    [TD]80219
    [/TD]
    [TD]
    [/TD]
    [TD]
    [/TD]
    [/TR]
    [TR]
    [TD]IOP321
    [/TD]
    [TD]
    [/TD]
    [TD]
    [/TD]
    [/TR]
    [TR]
    [TD]IOP33x
    [/TD]
    [TD]
    [/TD]
    [TD]
    [/TD]
    [/TR]
    [TR]
    [TD]PXA210/PXA250
    [/TD]
    [TD]
    [/TD]
    [TD]
    [/TD]
    [/TR]
    [TR]
    [TD]PXA255
    [/TD]
    [TD]400 MHz
    [/TD]
    [TD]
    [/TD]
    [/TR]
    [TR]
    [TD]PXA26x
    [/TD]
    [TD]
    [/TD]
    [TD]
    [/TD]
    [/TR]
    [TR]
    [TD]PXA27x
    [/TD]
    [TD]624 MHz
    [/TD]
    [TD]
    [/TD]
    [/TR]
    [TR]
    [TD]PXA800(E)F
    [/TD]
    [TD]
    [/TD]
    [TD]
    [/TD]
    [/TR]
    [TR]
    [TD]Monahans
    [/TD]
    [TD]1.25 GHz
    [/TD]
    [TD]
    [/TD]
    [/TR]
    [TR]
    [TD]PXA900
    [/TD]
    [TD]
    [/TD]
    [TD]
    [/TD]
    [/TR]
    [TR]
    [TD]IXC1100
    [/TD]
    [TD]
    [/TD]
    [TD]
    [/TD]
    [/TR]
    [TR]
    [TD]IXP2400/IXP2800
    [/TD]
    [TD]
    [/TD]
    [TD]
    [/TD]
    [/TR]
    [TR]
    [TD]IXP2850
    [/TD]
    [TD]
    [/TD]
    [TD]
    [/TD]
    [/TR]
    [TR]
    [TD]IXP2325/IXP2350
    [/TD]
    [TD]
    [/TD]
    [TD]
    [/TD]
    [/TR]
    [TR]
    [TD]IXP42x
    [/TD]
    [TD]
    [/TD]
    [TD]
    [/TD]
    [/TR]
    [TR]
    [TD]IXP460/IXP465
    [/TD]
    [TD]
    [/TD]
    [TD]
    [/TD]
    [/TR]
    [/TABLE]


    Để đạt được một thiết kế gọn, đơn giản và nhanh, các nhà thiết kế ARM xây dựng nó theo kiểu nối cứng không có vi chương trình, giống với bộ vi xử lý 8bit 6502 đã từng được dùng trong các máy vi tính trước đó của hãng Acorn.
    Cấu trúc ARM bao gồm các đặc tính của RISC như sau:
    · Cấu trúc nạp/lưu trữ.
    · Không cho phép truy xuất bộ nhớ không thẳng hàng (bây giờ đã cho phép trong lõi Arm v6).
    · Tập lệnh trực giao.
    · File thanh ghi lớn gồm 16×32bit.
    · Chiều dài mã máy cố định là 32 bit để dễ giải mã và thực hiện pipeline, để đạt được điều này phải chấp nhận giảm mật độ mã máy.
    · Hầu hết các lệnh đều thực hiện trong vòng một chu kỳ đơn.
    So với các bộ vi xử lý cùng thời như Intel 80286 và Motorola 68020, trong ARM có một số tính chất khá độc đáo như sau:
    · Hầu hết tất cả các lệnh đều cho phép thực thi có điều kiện, điều này làm giảm việc phải viết các tiêu đề rẽ nhánh cũng như bù cho việc không có một bộ dự đoán rẽ nhánh.
    · Trong các lệnh số học, để chỉ ra điều kiện thực hiện, người lập trình chỉ cần sửa mã điều kiện.
    · Có một thanh ghi dịch đóng thùng 32bit mà có thể sử dụng với chức năng hoàn hảo với hầu hết các lệnh số học và việc tính toán địa chỉ.
    · Có các kiểu định địa chỉ theo chỉ số rất mạnh.
    · Có hệ thống con thực hiện ngắt hai mức ưu tiên đơn giản nhưng rất nhanh, kèm theo cho phép chuyển từng nhóm thanh ghi.
    I. Vi điều khiển AT91SAM9260:
    1. Đặc điểm chính:
    AT91SAM9260 có lõi là bộ vi xử lý ARM926EJS thuộc họ ARM9E hỗ trợ tập lệnh Thumb (tập lệnh nén từ 32 bit xuống 16 bit) và ARM và có thể hoạt động với tốc độ 180Mhz.
    - Bộ nhớ:
    § Giao diện bus 32 bit hỗ trợ 4 bank SDRAM, bộ nhớ tĩnh, CompactFlash, NandFlash.
    § Có 2 SRAM được tích hợp bên trong chíp hoạt động ở tốc độ cao. Mỗi SRAM có dung lượng 4 Kbyte.
    § Có 1 ROM bên trong chíp có dung lượng 32 Kbyte chứa chương trình hệ thống phục vụ cho việc khởi động hệ thống nhúng do nhà sản xuất nạp sẵn,
    - Ngoại vi:
    § Bên trong chip tích hợp 4 kênh ADC 10 bit.
    § Có 2 bộ truyền dữ liệu không đồng bộ UART (Universal Asynchronous Receive/Transmitter)
    § Có 4 bộ truyền dữ liệu không đồng bộ/đồng bộ USART (Universal Synchronous Asynchronous Receive/Transmitter).
    § Một giao diện truyền nhận dữ liệu theo chuẩn I2C (chuẩn hai dây).
    § Một bộ điều khiển nối tiếp đồng bộ.
    § Hai giao tiếp SPI hỗ trợ hai chế độ Master/Slaver.
    § Một giao diện SD/MMC (dùng để đọc thẻ nhớ).
    § Một bộ điều khiển 10/100 Mbps Ethernet MAC.
    § Một bộ điều khiển truyền nhận USB và một bộ truyền nhận USB Device.
    § Ba bộ Timer/Counter.
    - Hệ thống:
    § Có 22 kênh DMA (Direction Memory Access).
    § Khởi động từ NAND Flash, SDCard, DataFlash hoặc Serial DataFlash.
    § Có bộ điều khiển Reset.
    § Ma trận bus AHB 6 lớp 32 bit hoạt động ở tần số 90Mhz.
    § Một PLL (bộ nhân tần số) cho hệ thống và một cho USB.
    § Hai tín hiệu xung đồng bộ ngoài có thể lập trình được.
    § Có bộ điều khiển ngắt cao cấp và sửa lỗi.
    § Tích hợp bộ dao động nội RC.
    § Cho phép chọn tần số tiết kiệm năng lượng 32,768 Khz và bộ dao động chính 3 đến 20 Mhz.
    § Cho phép cài đặt chế độ timer, watchdog timer, realtime timer.
    § Khối xuất nhập:
    § Ba bộ điều khiển Input/Output song song 32 bit.
    § Có 96 đường Input/Output đa mục đích.
  9. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    cố gắng chèn hình vào mà bị lỗi hết,thôi...làm biếng quá..! mọi người có gì thắc mắc cùng nhau trao đổi nha..Mình chỉ muốn góp 1 phần nào đó để đưa chủ đề này vào cùng nhau thảo luận thôi.! chứ không phải muốn khoe khoan về kiến thức của mình.! còn tài liệu mình sẽ up lên những gì mình có.! tài liệu lập trình nhúng của thầy sơn thì các bạn down trên trang web của thầy: www.sontruong.spkt.net
  10. ngocphu811 Member

    Số bài viết: 47
    Đã được thích: 2
    Điểm thành tích: 8
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    Thực ra lập trình nhúng ko đến mức "quá sức" như vậy!Nếu không có kit thực tế để thực hành, các bạn có thể sử dụng QEmu để mô phòng, mặc dù bất đắc dĩ!Mình cũng đang nghiên cứu lập trình hệ thống nhúng.Hy vọng được làm quen, trao đổi cùng các bạn có chung niềm đam mê.
  11. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    Mọi người nếu thích thì lập nhóm mà học nha..bạn nào có kit thì tốt hơn..! địa điểm học có thể là phòng tự học ktx D, thời gian buổi tối.chủ yếu là trao đổi và cùng nhau giải đáp thắc mắc nếu có thể.!
  12. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    Hiện tại mình và ngocphu811 đang thực hành trên hành trên 1 số kit như Tiny6410( mini2440 cũng tương đương),thấp hơn là KM9260 và thấp hơn nữa là Cotex M3..!
  13. NguyenDangDuc_bn291 Member

    Số bài viết: 43
    Đã được thích: 0
    Điểm thành tích: 6
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    Nếu có kit thực hành thì học nhanh hơn.Nghe nói các bạn SPKT được học thực hành nhiều về vi xử lí, vi điều khiển.Các bạn hãy nêu ý kiên về Topic này, mọi người cùng trao đổi.
  14. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    Nghe bạn nói chắc bạn không phải dân spkt rồi,không biết bạn đến từ đâu vậy.! Hiện tại tụi mình đang thử cài đặt và lập trình trên 2 công cụ là Qt Creator và Eclipse trên linux.! so sánh xem cái nào dễ chịu hơn.!
  15. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    ah..biết rồi. Đại học giao thông vận tải hà nội..!
  16. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    Phú làm được rồi thì tranh thủ up bài hướng dẫn cài đặt Eclipse và qt-eclipse-integration-linux lên nhan..! có gì cùng nhau tìm hiểu cái này cũng được.!
  17. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    [h=1]How to install the cross-copiler for mini2440 on host PC[/h][video=youtube_share;ONPAQBAMyYE]http://youtu.be/ONPAQBAMyYE[/video]
  18. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    How to compile QtEmbedded 4.6.3 for mini2440

    [video=youtube_share;-_YzWgGJgKU]http://youtu.be/-_YzWgGJgKU[/video]

    ./configure -prefix /qtbuild/ -release -shared -fast -pch -no-qt3support -qt-sql-sqlite -no-libtiff -no-libmng -qt-libjpeg -qt-zlib -qt-libpng -qt-freetype -no-openssl -nomake examples -nomake demos -nomake tools -optimized-qmake -no-phonon -no-nis -no-opengl -no-cups -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-xkb -no-sm -no-xinerama -no-xshape -no-separate-debug-info -xplatform qws/linux-arm-g++ -embedded arm -depths 16 -no-qvfb -qt-gfx-linuxfb -no-gfx-qvfb -no-kbd-qvfb -no-mouse-qvfb-qt-kbd-usb -confirm-license -qt-mouse-tslib
  19. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    Install QtCreator and set it up for QtEmbedded

    [video=youtube_share;8LuNaCGDCqg]http://youtu.be/8LuNaCGDCqg[/video]
  20. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
  21. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    [h=1]Compile and install the hello application[/h][video=youtube_share;ghzRuwEAWdo]http://youtu.be/ghzRuwEAWdo[/video]
  22. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    [h=2]Chạy ứng dụng Qt trên board FriendlyARM[/h]
    [IMG]Bài viết hướng dẫn cách cài đặt, tạo một chương trình Qt sau đó cho chạy trên board FriendlyARM, việc lựa chọn board FriendlyARM sẽ tùy thuộc vào người sử dụng, có thể là mini2440, tyni6410 hoặc mini6410.
    Mục tiêu của bài viết này sẽ hướng dẫn bạn cách làm thế nào để có thể chạy ứng dụng Qt trên nền Linux có sẵn trên board FriendlyARM, các công cụ liên quan phục vụ cho bài viết này cũng sẽ được đề cập chi tiết, với cách thức diễn tả bài viết với các dòng lệnh đi kèm với hình ảnh sẽ giúp cho bạn hiểu vấn đề một cách đơn giản nhất.


    Để có thể hiểu được các vấn đề tiếp theo trong bài viết này, một vài công cụ cần thiết đã được đề cập ở bài viết số 1, trong đó bạn có thể có được một vài thông tin về hệ điều hành sử dụng cho việc phát triên, compiler cho ARM processor....



    http://hlab.com.vn/index.php?option=com_content&view=article&id=306%3Ahc-embedded-system-vi-cac-dong-friendly-arm&catid=43%3Aembedded-system&Itemid=95&lang=en

    Nội dung:

    * Giới thiệu lược về Qt, cài đặt.
    * Tslib, cách cài đặt và biên dịch tslib.
    * Thư viện Opensource everywhere dành cho việc biên dịch ứng dụng Qt.
    * Viết một chương trình nhỏ với giao diện đồ họa tạo trên Qt, chạy nó dưới board FriendlyARM.

    1. Qt
    Qt (cách phát âm chính thức tương tự như từ cute /ˈkjuːt/ trong tiếng Anh, một kiểu phát âm phổ biến khác là Q.T. /ˌkjuːˈtiː/) là nền tảng xây dựng các ứng dụng chạy được trên nhiều hệ điều hành. Phần lớn các ứng dụng xây dựng bằng Qt đều có giao diện đồ họa, do vậy Qt còn được coi như là một bộ công cụ (widget toolkit). Ban đầu Qt ra đời như một sản phẩm thương mại và cũng được dùng để viết môi trường KDE, nhưng về sau được bổ sung giấy phép LGPL, theo đó có thể được sử dụng tự do để phát triển các phần mềm nguồn mở hay đúng hơn là có thể sử dụng trong các phần mềm thương mại nếu muốn. Bản quyền thương mại của Qt hiện nay đã được chuyển qua hình thức thu phí hỗ trợ. Bạn có thể dùng Qt như một thư viện để viết phần mềm thương mại, nếu có sửa đổi nào trong bộ nguồn chính của Qt thì bạn phải cung cấp mã nguồn đã sửa ra chứ không yêu cầu phải mở toàn bộ mã nguồn hay phải mua giấy phép thương mại như trước kia.

    Có thể nói, việc sử dụng Qt trên Linux gần giống với việc chúng ta sử dụng Visual Studio trên Windows, tuy nhiên nếu bạn muốn sử dụng Qt trên Windows thì vẫn có phiên bản dành cho hệ điều hành này.

    Giao diện làm việc với Qt Creator:
    [IMG]
    Đề cài đặt Qt Creator, trong Ubuntu bạn làm như sau:
    Applications ->> Ubuntu Software Center ->> [tại ô Search] Qt Creator ->> Install
    Sau khi cài đặt xong, để khởi động Qt, bạn vào : Applications ->> Programming ->> Qt Creator
    Chú ý: để các bước thực hiện tiếp theo ít xảy ra lỗi thì bài viết khuyên bạn nên sử dụng một trong 2 phiên bản Ubuntu 10.10 hoặc Ubuntu 10.04.
    2. Tslib
    Nói một cách ngắn gọn, tslib là một thư viện cung cấp các stack, các chức năng cho việc giao tiếp với touchscreen trong hệ thống Linux.

    Trước hết bạn cần cài đặt gói git-core nhằm giúp việc lấy source của tslib từ server cung cấp.

    Các bước tiến hành cài đặt và build tslib như sau:
    Mở terminal :
    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"]$ apt-get install git-core[/TD]
    [/TR]
    [/TABLE]
    Để dễ quản lý các công việc trong bài viết này, thư mục QtTut được tạo để lưu trữ các file có liên quan.
    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"]$ cd /
    $ mkdir QtTut[/TD]
    [/TR]
    [/TABLE]
    với 2 dòng lệnh trên chúng ta đã tạo một thư mục QtTut, tiến hành tải tslib:
    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"]$ cd /QtTut/
    $ git clone http://github.com/kergoth/tslib.git[/TD]
    [/TR]
    [/TABLE]
    sau khi tải thành công:
    [IMG]
    config cho gói tslib:
    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"]$ cd /QtTut/tslib
    $ ./autogen.sh
    $ ./configure --host=arm-angstrom-linux-gnueabi --prefix=/usr/local/tslib --enable-static –enable-shared[/TD]
    [/TR]
    [/TABLE]
    chú ý rằng host ở đây được hiểu nôm nà là chúng ta sẽ chạy thư viện này trên nền phần cứng ARM, prefix với đường dẫn sẽ chứa thư mục tslib sau khi được build,tiến hành build thư viện tslib:
    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"]$ make
    $ make install[/TD]
    [/TR]
    [/TABLE]
    [IMG]

    Cuối cùng chúng ta thu được một thư mục tslib với các file trong đó sẽ được sử dụng cho phần tiếp theo!
    3. Cài đặt thư viện Opensource everywhere.
    Thư viện này sẽ giúp chúng ta biên dịch ứng dụng của Qt để chạy trên nền phần cứng ARM
    Bạn tải một trong 2 gói này về ứng với mỗi phiên bản Ubuntu:


    http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.6.2.tar.gz (Ubuntu 10.04 LTS)
    http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.0.tar.gz (Ubuntu 10.10)

    Copy file vừa tải về vào thư mục QtTut
    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"]$ cp /qt-everywhere-opensource-src-4.6.2.tar.gz /QtTut/[/TD]
    [/TR]
    [/TABLE]
    giải nén
    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"]$ tar -zvxf qt-everywhere-opensource-src-4.6.2.tar.gz[/TD]
    [/TR]
    [/TABLE]
    truy nhập vào thư mục vừa giải nén
    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"]$ cd qt-everywhere-opensource-src-4.6.2

    [/TD]
    [/TR]
    [/TABLE]
    chỉnh sửa các file sau bằng gedit có sẵn trong qt:
    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"]$ gedit mkspecs/common/g++.conf

    [/TD]
    [/TR]
    [/TABLE]
    thay đổi dòng sau:
    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"]QMAKE_CFLAGS_RELEASE += -O2


    [/TD]
    [/TR]
    [/TABLE]
    thành
    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"]QMAKE_CFLAGS_RELEASE += -O0[/TD]
    [/TR]
    [/TABLE]
    đóng cửa sổ gedit, gõ tiếp dòng sau:
    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"]$ gedit /mkspecs/qws/linux-arm-g++/qmake.conf[/TD]
    [/TR]
    [/TABLE]
    sửa toàn bộ nội dung của file thành như sau:
    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"]#
    # qmake configuration for building with arm-linux-g++
    #

    include(../../common/g++.conf)
    include(../../common/linux.conf)
    include(../../common/qws.conf)

    # modifications to g++.conf
    QMAKE_CC = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-gcc
    QMAKE_CXX = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-g++
    QMAKE_LINK = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-g++
    QMAKE_LINK_SHLIB = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-g++

    # modifications to qmake.conf

    QMAKE_AR = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-ar cqs
    QMAKE_OBJCOPY = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-objcopy
    QMAKE_STRIP = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-strip
    QMAKE_INCDIR += /usr/local/tslib/include
    QMAKE_LIBDIR += /usr/local/tslib/lib

    load(qt_config)

    [/TD]
    [/TR]
    [/TABLE]
    sau khi thực hiện thành công 2 bước trên, chúng ta sẽ config cho thư viện với lệnh sau:
    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"]$ mkdir /usr/local/Qt
    $ cd /QtTut/qt-everywhere-opensource-src-4.6.2/
    $ ./configure -embedded arm -xplatform qws/linux-arm-g++ -prefix /usr/local/Qt -qt-mouse-tslib -little-endian -no-webkit -no-qt3support -no-cups -no-largefile -optimized-qmake -no-openssl -nomake tools[/TD]
    [/TR]
    [/TABLE]
    Configure thành công chúng ta sẽ tiến hành build:
    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"]$ make
    $ make install[/TD]
    [/TR]
    [/TABLE]
    Thời gian build cho thư viện này tương đối lâu, thời gian chờ đợi có thể là 2 tới 3 giờ.
    Sau khi build thành công, chúng ta sẽ có thư mục Qt như đường dẫn trên, trong đó có chứa các file cần thiết để hỗ trợ cho Qt.

    4. Viết chương trình đơn giản trên Qt Creator để chạy trên board FriendlyARM tyni6410

    Khởi động Qt Creator
    [IMG]

    Tại form chính chúng ta thiết kế cơ bản như sau:
    kéo một TextEdit và 2 pushbutton, một nút với tên là Display và một nút nhấn là Clear
    [IMG]


    Chuột phải vào nút display, chọn Go to slot... ->> chọn Clicked() … ->>OK

    thêm dòng lệnh sau cho sự kiện click của pushbutton display:

    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"]ui->textEdit->setText(QString("Hello World!"));

    [/TD]
    [/TR]
    [/TABLE]
    Chuột phải vào nút Clear, chọn Go to slot... ->> chọn Clicked() … ->>OK

    thêm dòng lệnh sau cho sự kiện click của pushbutton display:

    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"]ui->textEdit->setText(QString(" "));[/TD]
    [/TR]
    [/TABLE]
    Build Project:

    Để chạy được ứng dụng trên board FriendlyARM, chúng ta sẽ cần tới qmake của thư viện Qt đã được build ở phía trên của bài viết.

    Nhấp vào thẻ Project , chúng ta sẽ setting cho project, ở đây bạn sẽ thấy các vùng thiết lập cho việc build project.

    Tại General → Nhìn dòng Qt Version, bạn nhấn vào Manage. Trong hộp thoại hiện ra, ở thẻ Qt version, trong danh sách chúng ta nhìn thấy có Auto-dectected Manual. Nhấp chuột chọn Manual, nhấn dấu cộng bên phải hộp thoại, tại Version name gõ FriendlyARM, tại qmake location, bạn tìm đến đường dẫn chứa file qmake của Qt lúc trước đã build, cụ thể nó ở đường dẫn như sau:

    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"]/usr/local/Qt/bin/qmake[/TD]
    [/TR]
    [/TABLE]
    Apply ->> OK.

    Trở về thẻ Project, với Build Setting, trong General, bỏ chọn Shadown build.
    trong Qt version chọn FriendlyARM.
    Bên dưới Build Setting cỡ lớn, tại Edit build Configuration chọn FriendlyARM Realease.

    Cuối cùng chúng ta được như sau:

    [IMG]
    Save lại và build ứng dụng.
    Vào menu Build ->> Rebuild All.

    Build thành công chúng ta sẽ có file thực thi như trong hình, file có màu tím:
    [IMG]

    Bước tiếp theo chúng ta sẽ làm cho file này chạy được trên board FriendlyARM.

    Khởi động board FriendlyARM, sau khi khởi động chúng ta sẽ điều khiển lệnh thông qua telnet:

    kết nối board FriendlyARM với PC thông qua cổng mạng, hoặc kết nối chung vào một switch.

    kiểm tra kết nối :
    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"]$ ping 192.168.1.230

    $ telnet 192.168.1.230[/TD]
    [/TR]
    [/TABLE]
    gõ tài khoản đăng nhập và password.
    [IMG]
    tạo thư mục chứa file chương trình:
    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"][root@FriendlyARM /]# mkdir myApp

    [/TD]
    [/TR]
    [/TABLE]
    tiếp theo chúng ta sẽ tiến hành truyền file apphello tới board thông qua đường mạng với giao thức ftp.
    mở một terminal mới trên ubuntu gõ lệnh sau:

    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"]$ cd /apphello/
    $ ftp 192.168.1.230[/TD]
    [/TR]
    [/TABLE]
    đăng nhập với tài khoản và mật khẩu giống trong telnet
    [IMG]
    gõ lệnh sau để gửi truyền file chương trình xuống board:
    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"]ftp> put apphello[/TD]
    [/TR]
    [/TABLE]
    apphello là tên file chương trình được build ở phía trên.
    trong thư mục apphello chứa file thực thi apphello, bạn tạo file có nội dung:
    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"]#!/bin/sh

    if [ -e /etc/friendlyarm-ts-input.conf ] ; then
    . /etc/friendlyarm-ts-input.conf
    fi
    true ${TSLIB_TSDEVICE:=/dev/touchscreen}

    TSLIB_CONFFILE=/etc/ts.conf

    export TSLIB_TSDEVICE
    export TSLIB_CONFFILE

    export TSLIB_PLUGINDIR=/usr/lib/ts
    export TSLIB_CALIBFILE=/etc/pointercal

    export QWS_DISPLAY=:1
    export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
    export PATH=/bin:/sbin:/usr/bin/:/usr/sbin:/usr/local/bin

    if [ -c /dev/touchscreen ]; then
    export QWS_MOUSE_PROTO="Tslib MouseMan:/dev/input/mice"
    if [ ! -s /etc/pointercal ] ; then
    rm /etc/pointercal
    /usr/bin/ts_calibrate
    fi
    else
    export QWS_MOUSE_PROTO="MouseMan:/dev/input/mice"
    fi

    export QWS_KEYBOARD=TTY:/dev/tty1

    export HOME=/root

    cd /myApp
    ./apphello -qws
    hotplug

    [/TD]
    [/TR]
    [/TABLE]
    đặt tên file là appscript, save lại và đóng cửa sổ edit lại.

    tại khung terminal ftp gõ lệnh sau:

    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"]ftp> put appscript[/TD]
    [/TR]
    [/TABLE]
    tại cửa sổ terminal telnet chúng ta sẽ kiểm tra file tại thư mục root dưới board
    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"][root@FriendlyARM /]# ls[/TD]
    [/TR]
    [/TABLE]
    [IMG]
    gõ các lệnh sau để cho phép các file thực thi trong môi trường sở hữu.
    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"][root@FriendlyARM /]# chmod +x apphello
    [root@FriendlyARM /]# chmod +x appscript
    [/TD]
    [/TR]
    [/TABLE]
    kiểm tra lại với lệnh ls ta thấy màu hiển thị của file đó chuyển sang màu xanh lá cây là ok.
    tiếp theo di chuyển chúng vào thư mục myApp đã được tạo ở trên
    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"][root@FriendlyARM /]# mv apphello /myApp
    [root@FriendlyARM /]# mv appscript /myApp[/TD]
    [/TR]
    [/TABLE]
    tại cửa sổ terminal telnet, gõ lệnh sau để chỉnh sửa file rS trong thư mục /etc/init.d/rcS
    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"][root@FriendlyARM /]# vi /etc/init.d/rcS[/TD]
    [/TR]
    [/TABLE]
    di chuyển con trở tới vị trí cần sửa sau đó nhấn phím i để nhập dữ liệu, sau khi sửa xong nhấn phím ESC - > :w ->> Enter để lưu lại.
    sửa nội dung của file rcS thành như sau:

    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"]#! /bin/sh

    PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:
    runlevel=S
    prevlevel=N
    umask 022
    export PATH runlevel prevlevel

    #
    # Trap CTRL-C &c only in this shell so we can interrupt subprocesses.
    #
    trap ":" INT QUIT TSTP
    /bin/hostname FriendlyARM

    [ -e /proc/1 ] || /bin/mount -n -t proc none /proc
    [ -e /sys/class ] || /bin/mount -n -t sysfs none /sys
    [ -e /dev/tty ] || /bin/mount -t ramfs none /dev
    /bin/mount -n -t usbfs none /proc/bus/usb

    echo /sbin/mdev > /proc/sys/kernel/hotplug
    /sbin/mdev -s
    /bin/hotplug
    # mounting file system specified in /etc/fstab
    mkdir -p /dev/pts
    mkdir -p /dev/shm
    /bin/mount -n -t devpts none /dev/pts -o mode=0622
    /bin/mount -n -t tmpfs tmpfs /dev/shm
    /bin/mount -n -t ramfs none /tmp
    /bin/mount -n -t ramfs none /var
    mkdir -p /var/empty
    mkdir -p /var/log
    mkdir -p /var/lock
    mkdir -p /var/run
    mkdir -p /var/tmp

    /sbin/hwclock -s

    /sbin/hwclock -s

    syslogd
    /etc/rc.d/init.d/netd start
    echo " " > /dev/tty1
    echo "Starting networking..." > /dev/tty1
    sleep 1
    /etc/rc.d/init.d/httpd start
    echo " " > /dev/tty1
    echo "Starting web server..." > /dev/tty1
    sleep 1
    /etc/rc.d/init.d/leds start
    echo " " > /dev/tty1
    echo "Starting leds service..." > /dev/tty1
    echo " "
    sleep 1

    echo " " > /dev/tty1
    /etc/rc.d/init.d/alsaconf start
    echo "Loading sound card config..." > /dev/tty1
    echo " "

    /sbin/ifconfig lo 127.0.0.1
    /etc/init.d/ifconfig-eth0

    #/bin/qtopia &
    /myApp/appscript &
    echo " " > /dev/tty1
    echo "Starting myApp, please waiting..." > /dev/tty1

    [/TD]
    [/TR]
    [/TABLE]
    Ctrl+Z để thoát edit, trở lại dòng input lệnh.
    copy Qt lib có sẵn dưới board, thư viện cần thiết để có thể chạy ứng dụng Qt dưới board FriendlyARM
    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"][root@FriendlyARM /]# mkdir /usr/local/Qt
    [root@FriendlyARM /]# cp -r /usr/local/Trolltech/QtEmbedded-4.7.0-arm/lib/ /usr/local/Qt/
    [/TD]
    [/TR]
    [/TABLE]
    gõ lệnh sau để restart lại board:
    [TABLE="width: 0"]
    [TR="bgcolor: transparent"]
    [TD="bgcolor: transparent"][root@FriendlyARM /]# shutdown -r now[/TD]
    [/TR]
    [/TABLE]
    Quan sát dưới board:

    [IMG]


    Video demo:

    http://youtu.be/1gpCKLj8Q4U

    Nguồn: www.hlab.com.vn
  23. user001 New Member

    Số bài viết: 306
    Đã được thích: 3
    Điểm thành tích: 0
  24. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    [h=2] Embedded System Dictionary[/h]
    [IMG]
    This technical dictionary defines the 2,500 most-used words in the embedded systems field, with over 4,500 entries and cross-references. Designed to serve both the technical and non-technical audience, this book defines advanced terms in two steps. The fi

    This dictionary defines the 2,500 most-used words in the embedded systems field, with a general, contextual definition for less technical readers, and an in-depth definition for serious technical readers.

    DOWNLOAD: No pass

    http://www.mediafire.com/?unwmjqityjm
  25. tieuvy_kmt New Member

    Số bài viết: 72
    Đã được thích: 0
    Điểm thành tích: 0
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    tuyệt cú mèo, tiếc ôm 2 cái đồ án, bỏ thời gian ng.cứu này ít wa'!
  26. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    Các phần mềm trong hệ thống nhúng KM9260:

    Một hệ thống nhúng thông thường có các phần mềm sau:
    - ROM Code: là phần mềm do nhà sản xuất viết và nạp sẵn trong bộ nhớ Flash của Vi Xử Lý. ROM Code có chức năng khởi động cho hệ thống.
    - Bootstrapcode: có chức năng cấu hình phần cứng (các thanh ghi điều khiển UART_DB, SDRAM, NANDFlash, SPIx giao tiếp DataFlash) sau đó chép U-Boot từ Flash lên SDRAM và chuyển quyền thực thi cho U-Boot.
    - U-Boot: khi thực thi sẽ cấu hình phần cứng (USB, Network, SD/MMC, PIO, USB, …) có rất nhiều hàm hỗ trợ ở U-boot. Tiếp theo thực thi các lệnh trong U-Boot từ màn hình Terminal hoặc từ biến môi trường đã được người dùng cài đặt cấu hình từ trước. Các lệnh mà người dùng cấu hình sẵn thường là lệnh chép Kernel từ Flash, Network, SD Card, … lên SDRAM sau có khởi động Kernel.
    - Kernel: là hạt nhân của hệ điều hành, khi chạy sẽ khởi động các drivers cần thiết để giao tiếp với phần cứng, sau đó kết gán với Rootfs.
    - Rootfs (root file system): chứa các ứng dụng và thực thi chúng, sử dụng các dịch vụ của kernel để triệu gọi các hàm ở lớp driver khi thực thi.
  27. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    Chán thiệt tải ảnh thẳng từ máy tính lên bài viết luôn hok được..!
  28. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    Ai biết cách tải hình ảnh trực tiếp từ máy tính lên thì hướng dẫn cho anh em với nha..! hết muốn post bài luôn rồi..!
  29. hungkz New Member

    Số bài viết: 26
    Đã được thích: 0
    Điểm thành tích: 1
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    thấy mọi người sôi nổi thế này mà mình không tham gia là không được. theo mình thì có vài ý kiến sau không biết mọi người thấy thế nào thì cho ý kiến luôn nha. hiện tại anh em KMT09 cũng khá "ham hố" cái khoản embedded này, có điều kinh phí không có nhiều, bài viết này phần lớn đến từ các bạn khóa trước, khóa này chắc có mỗi Phú, mọi người đều đã khá am hiểu về embedded nhưng nhiều anh em còn rất mơ hồ. đã học về nhúng là phải có KIT rùi, hiện tại nếu có thể đầu tư thì mọi người chỉ có thể kiếm một cái STM32 thôi, mấy KIT kia kinh phí hơi lớn, lập trình cũng phức tạp hơn nhiều. để mở được một BOX riêng cho anh em học nhúng thì cái BOX đó cần hoạt động sôi nổi và nhiều thành viên tham gia, mình nghĩ mấy anh chị khóa trước hoặc ai có kinh nghiệm thì nên có những sự khởi đầu hợp lý một xíu, để anh em có thể dễ dàng chuyển giao giữa lập trình VDK và nhúng. vậy mấy tiền bối có thể up một số bài về KIT STM32 , lập trình căn bản một xíu đi kèm lý thuyết, mình trên lớp sẽ huy động anh em tiết kiệm tiền bạc để mua một cái KIT, như thế có thể chuyên đề Lập trình nhúng của chúng ta sẽ rất hiệu quả, sôi nổi và đông vui hơn, tích cực hơn. anh em cho ý kiến nha. thanks all.
  30. user001 New Member

    Số bài viết: 306
    Đã được thích: 3
    Điểm thành tích: 0
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    thiệt tình thì cũng gọi là lười đọc lý thuyết, mấy anh khóa trước mà tổng hợp những cái "siêu cơ bản" lại dùm tụi em thì quá tốt :D
  31. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    Tài liệu về STM32 thì đầy đủ nhất là trên trang www.arm.vn hôm trước vừa mới bán rẻ cái kit STM32 cho bạn gì đó ở KMT09. nhưng kit STM32 thì không hỗ trợ về nhúng nhiều đâu,nó chuyên để nghiên cứu về lập trình firmware nhiều hơn. Muốn nghiên cứu về nhúng thì tối thiểu nên chọn kit KM9260.! Mình có quen mấy anh bên công ty arm nên bạn nào cần có thể liên hệ với mình để có giá mềm hơn..!
  32. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    Tốt nhất để topic này hoạt động sôi nổi hơn thì các bạn cứ tự tìm hiểu,có gì không hiểu thì cứ post lên thảo luận. Còn cứ post tài liệu lên thì không biết bao nhiêu cho đủ..!
  33. hungkz New Member

    Số bài viết: 26
    Đã được thích: 0
    Điểm thành tích: 1
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    kỳ này tạm thời mình ngâm cứu cái STM đã, mới mua của lindong hôm bữa đó, hì hì. có gì kỳ sau sẽ sắm cái khác. :)).
  34. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    ah,nhớ rồi. có tài liệu trong cái CD đó. có gì bạn up lên cho mọi người down về tham khảo luôn..! không thì lên arm.vn xem chứ có gì nữa đâu mà post..!
  35. hungkz New Member

    Số bài viết: 26
    Đã được thích: 0
    Điểm thành tích: 1
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    tiếc thay đó là cái đĩa trắng, mình kiểm tra đi kt lại mà nó chẳng có gì cả. haizzz. mình nghĩ trên arm.vn có rùi nên k xem, giờ lôi ra xem mới thấy k có gì, mới vứt đi xong vò nó cũng k xài dc nữa. haizzzz
  36. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao


    1. Sdram (U2):
    [IMG]
    Sơ đồ kết nối SDRAM
    - Bộ nhớ chính sử dụng SDRAM bus 133Mhz, SDRAMC được cấu hình với bus data 16 bit.
    - Bảng sau trình bày thông số bảng đồ vùng nhớ của SDRAM trong hệ thống.
    [TABLE]
    [TR]
    [TD]Mã số linh kiện[/TD]
    [TD]MT48LC16M16A2 TC75[/TD]
    [/TR]
    [TR]
    [TD]Chân chọn chip[/TD]
    [TD]NCS1[/TD]
    [/TR]
    [TR]
    [TD]Địa chỉ đoạn[/TD]
    [TD]0x20000000[/TD]
    [/TR]
    [TR]
    [TD]Dung lượng[/TD]
    [TD]0x2000000 (32MB)[/TD]
    [/TR]
    [/TABLE]






    Thông số của SDRAM
    - Mã số linh kiện là số được in trên thân của chip, mã số này do nhà sản xuất quy định.
    - Chân chọn chip là NCS1 có nghĩa là chân CS của chip được nối với chân SDCS_NCS1 của vi xử lý.
    - Địa chỉ đoạn là địa chỉ mà vi xử lý gán cho chip tương ứng với NCS1.
    - Dung lượng của SDRAM là 32 MB
    Không hiểu tại sao địa chỉ SDRAM của Kit KM9260 lại có địa chỉ là 0x20000000? :-/:-/:-/
    help me..!
  37. nhimcon Active Member

    Số bài viết: 158
    Đã được thích: 81
    Điểm thành tích: 28
  38. truongvanquan New Member

    Số bài viết: 10
    Đã được thích: 0
    Điểm thành tích: 0
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    Đó là địa chỉ đoạn mà bạn. Vì trong KM9260 thì CPU dành cho SDRAM từ 0x20000000 -> 0x2FFFFFFF.
    Nhưng trong kit KM9260 và cả SAM9260-EK các anh Phương, Thịnh chỉ thiết kế SDRAM có 32MB (hơi keo thì phải :D).
  39. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Re: Tìm hiểu lập trình nhúng

    Vậy phải chăng đây chính là địa chỉ Ram nội của vi xử lý..nhưng mà hok phải vì cpu có kết nối với SD RAM bên ngoài nữa mà..!
  40. truongvanquan New Member

    Số bài viết: 10
    Đã được thích: 0
    Điểm thành tích: 0
    Re: Tìm hiểu lập trình nhúng

    Thì địa chỉ 0x20000000 là của SDRAM ngoại mà.
    Địa chỉ RAM nội (SRAM) là 0x200000 -> 0x201000 và 0x300000 -> 0x301000.
    Bạn xem trong datasheet thì sẽ rõ.
  41. sotuoi New Member

    Số bài viết: 1
    Đã được thích: 0
    Điểm thành tích: 0
    Mình là new member lập trình nhúng. Kít sử dụng KM9260.
    Mình có một số vấn đề chưa rõ:
    - Nếu rootfs không còn được cộng đồng hổ trợ thì làm thế nào để cài nhưng ứng dụng mới: usb-modeswitch, ppp.
    (Với rootfs được hổ trợ update thì chỉ cần gõ : apt-get install ppp usb-modeswitch.)
    - Cách cài ứng dụng từ source code có nguyên tắc gì không, không dùng lệnh apt-get ...?
    - Có cách nào build root mới từ rootfs có sản một cách đơn giản không? nâng cấp rootfs debian lenny -> debian 6 (giờ còn update được)
  42. sangkmt New Member

    Số bài viết: 1
    Đã được thích: 0
    Điểm thành tích: 1
    Re: [Thảo luận] Lập trình NHÚNG - Cơ bản đến nâng cao

    Phân biệt các loại địa chỉ vật lý, địa chỉ offset, địa chỉ segment.
    Trình bày cách thức đánh địa chỉ (địa cỉ bắt đầu và địa chỉ kết thúc của các loại bộ nhớ mà board KM9260 hỗ trợ).
    Mình không có tài liệu lam phần này ai có up lên cho mình xin với

Chia sẻ trang này