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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。% a- a0 u, R0 i& v7 `. E" l( h! A! I
#include <linux/init.h>) i: x- t; `  _' R% {! H
#include <linux/module.h>3 o9 v3 c2 |" ]. \; X  W: ?
#include <linux/kernel.h>3 X' B% U7 y' j( I- y+ m6 B  r
#include <linux/types.h>1 ^5 I+ M$ ?- A5 D, W6 k4 j
#include <linux/gpio.h>6 c" p/ k) A3 I
#include <linux/leds.h>
9 i: U' Q5 e$ p# m#include <linux/platform_device.h>
4 ^& ~& f; x) d1 E' d$ U
% D( i& U( w& u% R# p#include <asm/mach-types.h>$ _! a8 A( {4 Q6 D* N# \9 c7 E. |
#include <asm/mach/arch.h>
9 i" ]7 o( o1 F#include <mach/da8xx.h>& n8 P: m" `, c. v  A. P* M! F! i7 M. |
#include <mach/mux.h>
* a+ Y) D% x* ?- ]
9 M  |9 U5 V8 H) e#define DA850_USER_LED0        GPIO_TO_PIN(0, 0); _9 [! B5 V. l. u
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 u: ^( j4 a0 c% v7 q5 L3 g+ C0 N#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 `0 g* W. w# `3 v1 U#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)! I: n8 b# h1 e% A  I! n
5 X) i2 l7 X+ r2 A( P
/* assign the tl som board LED-GPIOs*/5 o+ \- v/ w  o8 \9 h' q* P
static const short da850_evm_tl_user_led_pins[] = {
, m1 V4 q0 D3 Y% [0 h  P        /* These pins are definition at <mach/mux.h> file */
3 A3 N2 a2 b/ R2 q8 t        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
7 Y1 D# O2 Z& U/ }5 w        -1% @7 G8 J' {( N- i* U% T7 d5 e) ~
};' e1 e8 {" t# F
* o% A; z/ y2 O% _7 {% b/ c3 f2 w
static struct gpio_led da850_evm_tl_leds[] = {
+ z4 p% Y& W$ e9 x! ^% s& m        {
- f. s7 D# Q7 Z; j7 U7 c  q  o                .active_low = 0,; W- U- k/ }5 D2 {' s
                .gpio = DA850_USER_LED0,
- g, _) B4 v0 m. q2 q/ p! b                .name = "user_led0",2 L3 \- u9 C5 K7 w, u5 \6 c* g( K
                .default_trigger = "default-on",
8 d  D$ B( m0 |        },
& {- J$ W& N  C7 z5 L6 R. N3 n( k        {; K) }; j( v4 ?5 y, T
                .active_low = 0,( u8 h$ W/ V) {3 i
                .gpio = DA850_USER_LED1,3 o; \$ \7 l: o* ]' ]
                .name = "user_led1",2 Y/ |6 P9 I5 Q# ^& {
                .default_trigger = "default-on",
( N* y+ y) M) b1 e        },
! ^9 N# Q! y( J0 M! q  @/ m, v7 U        {
) d) q! U, Q: ?0 R7 D' `0 b7 A                .active_low = 0,
% G( z( s8 q) S1 s  k( ?- m* Y                .gpio = DA850_USER_LED2,- }) g& ?9 p# ?2 w" O0 n- s3 H# G
                .name = "user_led2",
, w: X' G: \: I4 P! S1 X3 o                .default_trigger = "default-on",& e& K% t. t% M. F9 N
        },
  n- e7 Z4 Z1 |% T  e2 G4 ^( D        {2 f1 e+ i- @- F4 C0 W0 R+ z% R: p. ~" a
                .active_low = 0,
5 s: |4 _( E2 \; o, [                .gpio = DA850_USER_LED3,+ M! ~8 j1 J1 l/ V
                .name = "user_led3",- G% z+ Z9 {! g& u% C  N6 G% A% `5 K
                .default_trigger = "default-on",0 c; I' T- y7 d5 I, C; ?8 a7 L. c
        },$ c$ ^- ]% J7 J  a$ g
};
5 F5 v" M) j( ~: z3 I2 c
3 L- G8 f" a( L. xstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
& `5 n: C: u# m6 O. n" ]        .leds = da850_evm_tl_leds,
  G( r2 v+ o' n9 m2 j# z' v/ \" t' v        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),' ]  D9 t" f: u
};0 L# d% @( y5 r; q8 D& ?" y( m
) x' M  y* V+ B
static void led_dev_release(struct device *dev)
6 @* x. g/ Y- s+ W' w, c0 `{
0 w5 o4 N. k) _+ z% b9 h- n};
9 E; S9 V  N1 H% @* }- u5 `2 U% K' L* N; O
static struct platform_device da850_evm_tl_leds_device = {
7 W* ]6 |2 S5 s+ q0 D9 i        .name                = "leds-gpio",% X0 U. A! C; u" C- K- |
        .id                = 1,
4 P( D4 H  N7 s, ^        .dev = {
* D: B4 e/ @. C8 \: e5 i                .platform_data = &da850_evm_tl_leds_pdata,. |& [% z- T7 Q4 T" ]- `  j
                .release = led_dev_release,6 O& m5 l! i: b0 c/ {+ w' O
        }
: R' Q0 d" I  N. A* t- l4 B# M};- x/ o6 A; n1 g' j' s- p# e

% m, y* B7 y$ a' e: j' U0 {static int __init led_platform_init(void)' ]9 U6 r6 G$ I$ n) e6 e
{
" j' z2 B4 @4 A& d$ D7 H        int ret;
! z# i( l' f% g% C. L% V#if 0
# n9 M4 Z9 p' f6 H2 G  O0 r        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
& e' L5 e9 f3 j        if (ret)
% S) s1 z/ y" N/ o                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
+ D% F" u" Q3 U7 \! Z6 e                                "%d\n", ret);- U+ y$ y9 [" q+ e+ E( F5 c8 H( J
#endif6 j& G" B# S$ Y% g7 [
        ret = platform_device_register(&da850_evm_tl_leds_device);, s" j, Y' R6 s5 X$ c
        if (ret)- O) ^3 E8 K) K- ]
                pr_warning("Could not register som GPIO expander LEDS");  ~$ ]; |: V6 W9 ]
        else
0 A* K* T- N) @                printk(KERN_INFO "LED register sucessful!\n");
, E& T# _+ ^3 u+ l  I( B$ g% k; f  p9 {- A
        return ret;
5 F) {9 I9 c9 D3 j- f/ `  u}  U* f% d" G) d+ b/ w$ B1 }

) \, q' U; K4 F( a9 s1 Zstatic void __exit led_platform_exit(void)! w; B1 p* P- y
{2 g, q1 }" V: \
        platform_device_unregister(&da850_evm_tl_leds_device);
" B4 Y5 ~" V2 V+ C+ k: T! U; H7 n+ l' b5 R, A
        printk(KERN_INFO "LED unregister!\n");
* G. r  L( V& y}' s! k! u4 f3 x6 y3 ?0 f6 [7 F
4 I- Q$ C. C; T* A! t$ I
module_init(led_platform_init);
0 C' B% J* |; i5 b8 e% r  m$ {module_exit(led_platform_exit);
/ _7 k* [3 v/ v* ]- h" X: h6 |
/ a) W2 S, x6 g! e" j+ eMODULE_DESCRIPTION("Led platform driver");
2 F! L& `$ h( q0 v6 OMODULE_AUTHOR("Tronlong");  @# x% e: c$ `7 j8 G: A
MODULE_LICENSE("GPL");
+ o9 s$ z& h+ ~/ x! {! _
( z: [8 t3 J9 C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-24 12:00 , Processed in 0.040024 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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