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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
+ R& ~+ M: U0 U, W3 A+ l#include <linux/init.h>2 s/ ^& e  u0 ?( J
#include <linux/module.h>) Z  f# l) F7 E* H3 U8 _* o
#include <linux/kernel.h>
, p, i& P, m3 d5 [" g#include <linux/types.h>. E( [3 p* o+ |
#include <linux/gpio.h>4 q% F6 M0 S! W2 H  H
#include <linux/leds.h>: G. z9 S) ^  l6 O
#include <linux/platform_device.h>5 w$ f! \$ y8 e: |5 Z
5 H3 h% r( v7 S' }4 E
#include <asm/mach-types.h>
( r9 R0 n9 G" F0 [  f#include <asm/mach/arch.h>8 G9 l6 s0 C* U& |$ e  Q! S
#include <mach/da8xx.h>0 B: T# R# X! E! f% U* D) w9 ?
#include <mach/mux.h>$ W8 y$ E/ Z5 v$ ?
0 m; n- x4 B) x0 @! f
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
5 H* `# g5 t5 ~1 j- {0 f  f#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# E/ B  w$ t' C( B0 [/ u#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 i, N; _* o) T4 r1 {
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
% n( J8 L; M5 w% X; ~
8 I) @6 @- l' c0 ?7 c* w' b/* assign the tl som board LED-GPIOs*/
# t. e+ `+ T! X" g6 o( B$ U! W# Wstatic const short da850_evm_tl_user_led_pins[] = {/ t+ V! s9 Z* g- K5 ]
        /* These pins are definition at <mach/mux.h> file */4 r: O- R$ p: ^, Y( T& t5 ^; J
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
4 d9 D/ T- B: y  L9 R! Q        -1) G' O; C# f8 K+ w; r! i  S
};" J6 Y* `$ F7 u  ], I& }

0 O9 P* y% R7 J* W0 ^static struct gpio_led da850_evm_tl_leds[] = {/ I; A# a1 N* q' Q) ^8 p
        {, J0 ~' i% [) a1 [
                .active_low = 0,' p: b- |4 @4 x# t3 E3 E
                .gpio = DA850_USER_LED0,5 k! c3 P; u8 ?$ H8 O& u5 ~9 R
                .name = "user_led0",
- h7 K, O& `' x; ?$ B                .default_trigger = "default-on",
& e* T" n, i, x        },, w5 ]  v4 L  {+ y7 e. ?1 }5 z
        {4 K( L& A7 a1 V! y
                .active_low = 0,2 G3 v- ~& p6 H: z# @! g( n# B9 U
                .gpio = DA850_USER_LED1,! ]: g! j/ ^2 e9 B; \( |
                .name = "user_led1",
7 {9 i6 W7 j& B( g, \; L6 ~                .default_trigger = "default-on",
+ W9 x+ c0 G/ f        },
- E: B1 J: Z& ^  b7 ^* k/ @! K, b5 T        {
/ Y  A) \4 z0 l" d                .active_low = 0,
" ~/ X! L; v. L) }                .gpio = DA850_USER_LED2,
- S# ]6 y- C0 E6 [& i& T+ H7 A                .name = "user_led2",
( s3 i; a& a9 H; `( X) R+ \, \; D  Q0 O                .default_trigger = "default-on",
1 M7 l9 M2 J" @. v6 w% @7 v        },7 \2 c3 W; b$ M; u
        {
5 Z$ @1 I5 f* M- o2 A5 S                .active_low = 0,) n" x  N& P+ V* y6 R' p$ H
                .gpio = DA850_USER_LED3,
7 p( Y( e1 m  T1 F- E$ R                .name = "user_led3",
6 P! ]% W2 G$ `3 S5 M9 ]( \                .default_trigger = "default-on",
! V/ M3 `, k# e( f- v$ d6 k        },9 ]) o3 x; K7 ?) o
};
9 \, {! F: w+ N! q& K' j# m3 ?2 h- M7 S( {- \
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! x% |9 D1 V' R# z9 B  k        .leds = da850_evm_tl_leds,# u; z1 T- T, |, ^' T
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),8 k6 [7 W; c- j
};
$ F, \: D! k6 I7 r$ @! {( |& i# G8 K) v! p& q* R  }* Z9 y. y
static void led_dev_release(struct device *dev)5 I8 e2 i/ U. ]  P$ C
{; a9 w% X1 r0 n' {9 p1 j; O
};5 u4 W4 u0 O. L# W1 q4 j  b& K
9 D! _9 W' U6 u7 E% d
static struct platform_device da850_evm_tl_leds_device = {
$ N# ]  e. N6 \5 ~7 L1 g        .name                = "leds-gpio",
! r7 d5 {% {3 A2 w& K        .id                = 1,7 N7 ?5 K6 G4 w" P( v+ g8 v$ _
        .dev = {
* p6 w# U% l6 H9 j+ o/ I                .platform_data = &da850_evm_tl_leds_pdata,( x+ C$ s! V# ~
                .release = led_dev_release,
- b6 D$ g# l# H; z9 y        }
7 x# N# q7 z+ s};
% J3 I/ J% T& V6 a2 |2 C' A
2 {* j, z: R! A  e. ^* zstatic int __init led_platform_init(void)1 l  D7 f! N+ A5 b* I6 h
{
1 N2 ?" u3 ^! z  f        int ret;
* M4 T' {, O/ x/ R% @0 N0 s#if 02 u$ h6 w0 x. R$ Y0 J, d) w
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
! u6 e& G) C* H        if (ret)
: r1 e' B+ R7 c) \7 q8 o2 n                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
+ j: m% @$ o2 K: g/ o9 ~' s                                "%d\n", ret);  d( r3 w- ^" u5 f+ W8 p
#endif
$ t/ v: z, O/ Q# h  Z        ret = platform_device_register(&da850_evm_tl_leds_device);5 h+ B% m( }, L7 b+ D1 z9 }
        if (ret)6 P# ^1 }3 o; m1 w" s; P; L
                pr_warning("Could not register som GPIO expander LEDS");5 ^* D4 u3 X# \
        else3 S0 z- v4 ?+ Q3 \7 Z6 I
                printk(KERN_INFO "LED register sucessful!\n");8 v6 ]% a6 G. H( J: A' B
+ \, K8 v7 C9 b7 l8 L0 Z3 }
        return ret;# u& w  M5 _: u3 N) s
}
1 K& G4 h, i9 f3 |
- f" w5 M  D% I# Y$ V" k% Jstatic void __exit led_platform_exit(void)
1 n$ J1 z; o' m- Z6 y. [6 H{
0 X" F7 j1 X+ u8 E+ F. J! `  x. r+ I        platform_device_unregister(&da850_evm_tl_leds_device);
% J! ]. T  F$ d+ v7 `) H9 x& f( R# A& I
        printk(KERN_INFO "LED unregister!\n");
! T2 c& }7 I$ j1 d9 h  |}
% k* p  ?' @; Q. i+ E$ a7 R- W- m, U0 y, d& r  w& p# A
module_init(led_platform_init);: ~5 G- I/ k, f4 E9 K4 B8 B
module_exit(led_platform_exit);
( ^, Q9 O9 K; i9 {" ~9 Q; K. f% F+ `7 G' P5 `
MODULE_DESCRIPTION("Led platform driver");# t1 K8 G$ Y$ Y4 c7 m
MODULE_AUTHOR("Tronlong");# `; z7 e0 Q( v  U; L. Q( @; F
MODULE_LICENSE("GPL");( ]/ O$ l8 ?7 V3 s" v0 I: V

2 W0 n1 w- X4 K: a/ W0 h8 r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-25 11:42 , Processed in 0.039130 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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