程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10239|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
, N, q) n0 P3 N7 Y0 x& g3 g#include <linux/init.h>
5 c! h2 Q% O2 w* z7 ?#include <linux/module.h>
1 I8 l5 A  E( A1 E4 C* t* {: I- |#include <linux/kernel.h>
4 R. ~$ G0 ?% ~+ i4 j#include <linux/types.h>
0 B$ @' D& O! n1 W1 u% q#include <linux/gpio.h>
3 D7 c! L. V2 t#include <linux/leds.h>
  a. L  C. \0 E. F+ i. _0 }#include <linux/platform_device.h>
9 G$ j& I9 a: p/ H0 f( C5 C" F% a. P
#include <asm/mach-types.h>
4 s. e# r$ I/ C: E' D#include <asm/mach/arch.h>
' M' C3 X6 J. v" y; R' U#include <mach/da8xx.h>
2 P+ z* o' _5 P#include <mach/mux.h>% h+ m* S# t' y" ?! L
! Y: ?8 K4 A7 H8 J$ K/ ?% V1 b
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
* W8 M' o8 `) o% G+ J3 A#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)0 `% r9 R6 h; m) P: ?% b
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
% u& ^! g( }+ S, C2 j#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
" G: `& Y! h, e( b7 w+ f% A" }" @) P! m# a1 r( O; G9 D
/* assign the tl som board LED-GPIOs*/
7 _# `7 z* b, A8 E% Ystatic const short da850_evm_tl_user_led_pins[] = {# _& d* D0 _7 R% n
        /* These pins are definition at <mach/mux.h> file */
( w; `8 f, C% l7 M. y6 o        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,/ M: [8 P4 ~7 K' }7 _0 r& e
        -1
2 W# D# [% D" ]7 n3 R};
8 i6 e0 W; |" I2 ~- U+ p+ T) i+ C2 B4 }  u7 N2 r7 @
static struct gpio_led da850_evm_tl_leds[] = {3 A; a' K, }$ c5 R4 k1 x
        {
! V; }* N: Q4 r2 N8 \1 ^                .active_low = 0,0 V+ w6 v7 d% Z) ]. T
                .gpio = DA850_USER_LED0,
. ?. J" B* o& S5 u) h                .name = "user_led0",3 j- r/ q9 Q7 Q1 z2 ]3 o5 S
                .default_trigger = "default-on",& c( g' u! [2 c1 L* p
        },
6 q0 N3 z) S. H3 b3 K; g4 d4 f# A4 i        {
# u% T- ]6 z) p  Q& ^& t4 n                .active_low = 0,5 w9 W. w' p! ?" o8 f( O5 S
                .gpio = DA850_USER_LED1,0 T- w" J. y/ j" P+ M: {0 i
                .name = "user_led1"," @( g% [3 E' J/ P
                .default_trigger = "default-on",2 h* J- P  ^: q  V
        },
" \# l& m) }" T' q& o        {
# m0 o  l3 E8 M4 n2 t3 Q                .active_low = 0,
' E  R) U: u5 O                .gpio = DA850_USER_LED2,6 `# F9 u% D" ^0 E
                .name = "user_led2",
: ]! Q/ L1 B4 I4 z% v9 L7 h                .default_trigger = "default-on",
8 {7 d( x4 a5 \9 d        },
% p  F# W3 @7 T, x, a        {, I9 b7 z9 x+ k5 f6 {$ K4 V2 S
                .active_low = 0," N% [8 `8 a- o+ w2 n
                .gpio = DA850_USER_LED3,5 E9 c. O7 e# G7 y6 q4 N
                .name = "user_led3",
5 C: ~8 P2 S3 d4 K; V1 q# `4 d' I                .default_trigger = "default-on",
, v+ @" U4 c4 o: U        },1 d6 P( e2 _2 f6 j
};
: s2 r# L) H3 {  J7 a) H' N
! h6 L; z5 j  h  Z5 A0 X5 Pstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
5 `$ r  m8 U; F( h        .leds = da850_evm_tl_leds,& W2 B1 G% {1 U6 O* m6 u
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
' I9 r5 x3 m/ F1 R+ `1 {3 H};
- r' y0 y% z5 p. h: A# [: E% l8 B
! n2 |& U6 D/ T* B- j3 xstatic void led_dev_release(struct device *dev)
$ l% t  X$ n. d{, N" g6 }! J4 d2 ?! j
};) ]% k! @5 M% H, A1 D* ?" K% [. k
! L$ e: ^* ?2 Z- z; Q  J6 I0 B
static struct platform_device da850_evm_tl_leds_device = {- ^4 ]: |% U9 U+ [
        .name                = "leds-gpio",- m+ Q. N. O; t% l& `- s
        .id                = 1,
/ t+ E0 O4 f, b* \! C        .dev = {
6 M; o# [; L" n1 [4 G                .platform_data = &da850_evm_tl_leds_pdata,, X# z, \9 _' y$ E
                .release = led_dev_release,
! h- P3 d1 e4 S        }
, J4 i' y+ b1 z};
0 M* R; `/ n. m+ {3 C$ q; Z& p! ]* B& i4 E" P3 Z% I5 M
static int __init led_platform_init(void)
0 s8 n5 Q4 \* E+ K7 F6 w7 t8 {* J{8 m  S/ A( I' {' v0 m: `" _4 C
        int ret;
+ o& F* K5 S/ L#if 06 y; g& L1 z4 m0 O' U) n; k( ]* O
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);# o; Y! v9 ?" v, Z2 J
        if (ret)
, q0 u) R4 L+ N                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
) S% R8 B4 ^: O1 l3 {                                "%d\n", ret);4 M1 N* t3 o% z2 _; Y
#endif
  {- W; M/ G  @  B. v+ ?$ C        ret = platform_device_register(&da850_evm_tl_leds_device);
3 ~* s3 l8 A+ q        if (ret)3 @8 a" x$ J+ @" c
                pr_warning("Could not register som GPIO expander LEDS");0 B' W! Y' r/ o$ b$ g
        else9 f/ y; k9 H: h- l6 {9 \! y- z: p
                printk(KERN_INFO "LED register sucessful!\n");
8 K  \* B/ l  f( J) D) S. b% z- T8 q! F$ R
        return ret;3 C& w) u$ w& ~7 K) ~
}4 t; r) h0 O; p- I- g( B0 y8 j
7 U1 t" r, x3 W3 u
static void __exit led_platform_exit(void)% v9 j8 k  N) N. P3 ?. R% n& ^
{2 f% f: u$ y) l7 B; Q' N8 v" u: g
        platform_device_unregister(&da850_evm_tl_leds_device);
# H/ @* V* H3 U4 f$ m' o% S8 ~- l; h7 l' d
        printk(KERN_INFO "LED unregister!\n");
! |" n5 u. K3 n$ y}/ `" {* m7 Y2 N) G; z, G# v) l

2 b5 b$ F+ p% N( wmodule_init(led_platform_init);- r) R1 N& Q5 B
module_exit(led_platform_exit);! ~' {: O  K% ]& }$ M, \9 [% H" [

7 v/ j7 D' X3 f/ VMODULE_DESCRIPTION("Led platform driver");
/ S: n: [& j1 TMODULE_AUTHOR("Tronlong");: U$ v! e6 j& D* V5 w" v! _
MODULE_LICENSE("GPL");3 ~6 f: |' X* n
' P6 y1 |- s& l1 A  b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-3-9 13:43 , Processed in 0.048016 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表