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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。* V1 h( o2 Z7 F: o2 T* p
#include <linux/init.h>+ e! `$ s) L4 K% R8 |
#include <linux/module.h>3 ]9 ?# Z6 r$ `1 `" z7 `& \
#include <linux/kernel.h>5 u- O; c% f/ \
#include <linux/types.h>2 F7 b! L- l# u- }  |$ Q
#include <linux/gpio.h>9 @. c3 `! J  ?! {- k9 W. N
#include <linux/leds.h>' Q9 u% M% a* n+ X% X
#include <linux/platform_device.h>4 w- k; h- g7 k* d

  A+ V  x" y* ~; G#include <asm/mach-types.h>
3 I$ y, B: f& u! M# [#include <asm/mach/arch.h>+ m' g  v0 x0 f4 v: r/ _
#include <mach/da8xx.h>
5 ^  e4 j2 `( x  ]# x#include <mach/mux.h>
# I* W9 X- d2 [" m" c
* F* j" q. i( m! L, p6 E# N#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
  x' l+ u- @  ?: x  A2 o- Z#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
' m5 x/ y4 V; e9 \  r" l#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 Q  ?: E: m) |+ F
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
/ ^" T  Y. e$ _: o7 @/ ?# P8 V( ?2 r. W# p6 A( E
/* assign the tl som board LED-GPIOs*/
' f8 u3 r* F  S* C. ustatic const short da850_evm_tl_user_led_pins[] = {
+ d3 P, Z6 I! q        /* These pins are definition at <mach/mux.h> file */
* i# P: ~$ }+ }  G        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' y1 p' [0 X% G+ E        -1
* y) w8 A8 T% w6 h. f( j  O};
- [( D1 I) v% [+ x) v
$ D* Y8 J3 o4 p) Z1 a  ]% Pstatic struct gpio_led da850_evm_tl_leds[] = {9 H: g0 ^2 e$ z4 b; j
        {
" P( v0 F$ `: Z6 m" v8 H                .active_low = 0,4 @! p* ^, n4 J/ n+ i" }& [
                .gpio = DA850_USER_LED0,3 a0 y+ k, p$ Y0 ~2 A
                .name = "user_led0",
0 V9 G, O# K$ ^& l4 o6 Y                .default_trigger = "default-on",* b. e4 Q1 Z+ N' U+ }
        },! |, l; T/ a( g. _* G: r9 n
        {# Z  T, B, S! M& T* a9 W" V
                .active_low = 0,: ]0 y  D7 y$ Q: o6 ~# D6 {7 K  w( O
                .gpio = DA850_USER_LED1,- q( d0 a  T( Y0 h
                .name = "user_led1",- Z- i' e- A, a( |) x1 a! u  E, Y
                .default_trigger = "default-on",
7 {+ |5 F$ k. J. m& r  s        },
" Q. Y/ ~) l- N! _$ A$ F: }        {! s4 u  l# @+ H7 n" U6 \9 x
                .active_low = 0,- H& U: O, y) P5 p, b6 |0 e
                .gpio = DA850_USER_LED2,
' F9 n$ x3 n8 q5 r& N                .name = "user_led2",: r; U" [) ], J  u
                .default_trigger = "default-on",
2 d3 O9 _$ C* \- M7 J5 @6 Q' o        },
1 w* ?1 W) o, Q6 @( v, b+ N( `' J" h        {
' J: ]3 w6 H% H6 q: n5 n8 {                .active_low = 0,9 p: z3 k. T1 u
                .gpio = DA850_USER_LED3,0 l. D/ a* M2 J' c2 R/ Z# z( N
                .name = "user_led3",
1 T2 q$ z% w1 Y5 ~6 u4 d                .default_trigger = "default-on",1 |$ ^  m, u) r8 ]
        },
5 ?7 `: J: Y. l' ]9 ~6 L7 c$ _# y. U7 ~};
2 ^% V0 g' t' W
3 _; x: ~8 @5 k& L' ~9 U! I' N# gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {3 I7 h  ^5 L! |2 f9 P! b& l
        .leds = da850_evm_tl_leds,; |- i# j- d+ X# ~, Z
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds)," L, k: x# n- M( n7 _. M5 ]* o, s
};
  }- [$ e1 `1 |! e  h5 X* a/ @5 u
) b, \- E) l. ^static void led_dev_release(struct device *dev)
# c, s7 w! }6 m0 n3 E{1 f9 C3 E( B: G4 x
};
8 q8 x  h" Q  N" r/ `% \) m$ k6 C$ U$ I  T1 M1 T+ _$ v4 k
static struct platform_device da850_evm_tl_leds_device = {
6 u1 e/ @$ v7 z, @& P# b) V/ J( d        .name                = "leds-gpio",( B' W* ?- D- {- h' A
        .id                = 1,! i1 j/ @" v; p4 |( ^+ G2 y
        .dev = {
8 ?: V+ R! c' ~) ~7 }                .platform_data = &da850_evm_tl_leds_pdata,5 }4 X- E) _+ \. d' c
                .release = led_dev_release,
; O! |# t6 \/ I        }9 d# O- {+ k$ a
};+ {% }, l6 s. |+ C
) C, C& t: z- }9 s
static int __init led_platform_init(void)% }0 p4 M$ d! _/ ~, h7 j
{
- |" }- K3 W' n# B5 \" E9 L        int ret;) o- W4 p/ T4 ~7 @+ h9 J
#if 0
7 ?% V+ k: L7 u        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
8 l; y. a5 q$ t8 ^        if (ret)
" a% Z8 }3 S( z) @& K% T                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
, Q  O) R% x+ W. z; _2 x                                "%d\n", ret);
3 I* \* W- t! K& l; V, B#endif
* b& t# v4 `# y        ret = platform_device_register(&da850_evm_tl_leds_device);
7 C4 N2 W# T$ q" j6 {        if (ret)# J1 D; W4 M5 d
                pr_warning("Could not register som GPIO expander LEDS");
  U) T4 r( q' X3 c" c' y  E; X        else
+ I. C) F8 m/ V5 k. u1 Z' s6 j                printk(KERN_INFO "LED register sucessful!\n");+ g: w6 E8 @! {) d

9 M! [& ]/ `2 Y" B" {$ G; s7 H0 j( \! R        return ret;! f/ k5 I, b3 K4 Z
}( q/ {9 _5 C+ U/ s/ A

; z5 k# i8 t+ h1 S3 X7 A+ v4 jstatic void __exit led_platform_exit(void)$ ~$ O! ?: V% _: o+ {" J8 `7 z( w
{) H: W! O/ l+ r
        platform_device_unregister(&da850_evm_tl_leds_device);# A& b6 m- t* L
6 ~  W1 _/ Z# O/ P9 D! p
        printk(KERN_INFO "LED unregister!\n");. b: {* r6 D. `/ {  r
}
# \7 w, a# B/ y$ q( R' r" D: i* O0 c" j! W7 b& T7 I* f" W; e
module_init(led_platform_init);+ E" P: a: A  S( F  G2 j
module_exit(led_platform_exit);7 N4 [! m" n: E8 X4 w2 g

: \/ q, O+ h" j5 wMODULE_DESCRIPTION("Led platform driver");
" r+ M& O3 J2 C7 G# S8 O" K: {MODULE_AUTHOR("Tronlong");
7 [9 ?' {. j3 `5 {$ u8 \4 ]6 ^MODULE_LICENSE("GPL");7 G1 r1 O# t& K/ G3 w7 @
1 t6 N' p$ w  ^5 J( ?5 \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-20 07:57 , Processed in 0.039526 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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