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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
: k( v0 V5 d0 R3 L, u#include <linux/init.h>1 s8 H1 q7 f1 h4 R6 b2 i
#include <linux/module.h>
3 z3 B9 H! r' f2 Z9 W+ K* ~3 G#include <linux/kernel.h>8 i4 x7 m  w! A" i
#include <linux/types.h>3 Z" j- U0 W3 W. m1 o
#include <linux/gpio.h>
/ e! |& W8 L7 G1 ?7 M( D#include <linux/leds.h>
3 k$ t6 Q# G) J! s+ @5 D% [#include <linux/platform_device.h>  w: z& v( o) f: Q

4 N+ N, f. p/ d& Z#include <asm/mach-types.h>- ^/ f! i7 t  g8 b2 \, H+ c
#include <asm/mach/arch.h>
$ p3 F2 Z6 w4 q# p! r1 ?#include <mach/da8xx.h>
$ }; t9 \  ~) t#include <mach/mux.h>, M/ f; ~  _! ?% J, G
. c. l( I& c5 G3 `6 E( A$ k" p
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
+ [" ?' J$ E' [/ W$ A. d#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)2 M0 o9 F8 {& L8 ]# \% K
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
0 }8 o$ k  \) n% x  R- U4 J' ?#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
9 u; _( V8 y2 C8 n- c% ~
8 G0 C- C5 {! M6 s; N* |4 z/* assign the tl som board LED-GPIOs*/$ F# ~3 B6 K9 A
static const short da850_evm_tl_user_led_pins[] = {
% N- e) C  u9 h" j" U        /* These pins are definition at <mach/mux.h> file */
$ l/ P, D/ K; G) T        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
2 @( E5 @7 t4 G$ J2 W        -1
7 V0 o! O: Y9 J/ n* u0 ^  M3 q2 z; b};3 y% f9 @! P3 m

9 P7 p1 R  ?! |$ X) Bstatic struct gpio_led da850_evm_tl_leds[] = {! Q& ^  O( x2 ^# F" w% v
        {
9 I" P/ D% D- }% H+ n2 s                .active_low = 0,
0 [) K5 H2 P5 W! N  x                .gpio = DA850_USER_LED0,
& T6 I3 m! @& \, v0 \                .name = "user_led0",  Z# u1 d' V8 x/ z* b- f
                .default_trigger = "default-on",
' k, z9 ~1 d; [) Z0 O5 v        },
. v, W8 |3 p$ i2 ]  c        {+ E7 u. s3 |* ^2 @, d
                .active_low = 0,
% R- Q$ _0 k% u6 K, c                .gpio = DA850_USER_LED1,
# p/ g; \3 f5 L4 `9 r; P  ?7 S                .name = "user_led1",/ x1 {2 C2 i/ |
                .default_trigger = "default-on",+ e# W9 P7 Y1 e( C* y. A1 V
        }," L& V( j2 V: C- ?$ j1 r
        {
" y+ t5 X0 ]0 \/ a1 a) [                .active_low = 0,
# C& l7 X9 @% f" [                .gpio = DA850_USER_LED2,
# u4 B2 g% ]: ?  G. ]# v$ Z, n1 Q; i                .name = "user_led2",4 `' H4 ~9 [( t8 q
                .default_trigger = "default-on",
1 X$ S0 \2 ^% w* L  @6 y  J        },
  \9 I  F5 L/ l! U2 o0 I2 G3 X        {; H! C( @7 Z& [# ~/ R% V
                .active_low = 0,
) Z  n. s! [% [1 H3 T                .gpio = DA850_USER_LED3,: G4 O) i. ]" V" V; j, a
                .name = "user_led3",! K6 H; q! d1 W3 [8 i5 j$ q
                .default_trigger = "default-on",
6 r+ x# N. A" o. o3 \4 z  u" g: f        },
# ]4 s: p+ S8 N0 n* c% c$ ?};
% v/ \+ }( z5 H5 d
7 X! S0 a# n0 Z" w5 Ostatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {& E; B& @: d: A# d  D! @1 m
        .leds = da850_evm_tl_leds,
/ l3 F: Y8 _6 p1 m7 S  A, H        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
. [% d  Y# K% }8 z: z& X% R( n9 w9 Z};
0 v( h4 S! k, t  t7 n; O  n) o# j+ y
static void led_dev_release(struct device *dev)
) U! @0 @+ [* u( `' l: E{
5 x" N0 R4 `! D& w0 O+ F6 K};  {4 d2 e. Y* V

& a& w, p1 J; T3 {' u2 l& t7 Cstatic struct platform_device da850_evm_tl_leds_device = {
0 O% C! n1 L- @        .name                = "leds-gpio",0 l4 P+ c% b  F  e
        .id                = 1,
* E1 L7 n/ n) _% q( S# S        .dev = {
/ ?* H; b0 j' V  K                .platform_data = &da850_evm_tl_leds_pdata,7 q8 c( W9 S% {( B
                .release = led_dev_release,/ Q7 o" k9 ]: M* L- q; H
        }0 e. D- f0 u) p' A$ o% I
};
2 j8 e* F2 _4 J# B$ h
! V/ H/ ~( @) i' f7 z* Lstatic int __init led_platform_init(void)( i/ Q0 b( F0 v- v: h2 X
{4 P, X) \7 F2 s# u6 _+ y
        int ret;
4 u0 r$ ^9 Z3 ]! Z1 E% b5 e#if 03 ^  J, w3 y6 ?6 h( }* T
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' [+ Y. G" V- D' z$ h9 y- f% e        if (ret)
' E2 Q! q7 B! H, p                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"4 Z) w9 |' x$ |$ ?4 l
                                "%d\n", ret);
+ Y! \& m& E% G! l6 f+ a1 E#endif
9 z3 S5 d% O3 J        ret = platform_device_register(&da850_evm_tl_leds_device);
- ~/ s% A6 {! L3 L+ B+ Q        if (ret)
( f  V9 e  u; Z2 u                pr_warning("Could not register som GPIO expander LEDS");- Z- b' |5 U& K3 e, P6 j
        else
* Z* t) O3 W: Z; \3 R& Q                printk(KERN_INFO "LED register sucessful!\n");
- E; `( j' Z) ^# X$ {6 o
  d. w/ U1 ?" `$ k        return ret;6 C; U  q4 L8 S* Y7 p) T: E
}4 e# T& t- C2 B7 L, x% w

8 N7 L6 Q$ e( ~& o+ vstatic void __exit led_platform_exit(void)- b( f) `; c" [3 Z
{$ S2 E2 G$ S& P8 V9 g' S
        platform_device_unregister(&da850_evm_tl_leds_device);+ J2 N+ ?  u7 f0 F

6 X, ~7 O. s! S5 b+ V        printk(KERN_INFO "LED unregister!\n");$ A9 i8 k" Q0 \7 D* [+ r! F
}! i) [- G# a4 A  |3 h
, }2 V; r0 e1 t& _3 s
module_init(led_platform_init);8 Z' X6 I5 h7 z% U
module_exit(led_platform_exit);$ H' ]8 H7 x1 g+ R0 O/ \2 s

8 T7 h" e0 O/ W5 h. r( _% QMODULE_DESCRIPTION("Led platform driver");
! i. K: ^1 k: |2 oMODULE_AUTHOR("Tronlong");4 d; J. ~; f7 [2 C
MODULE_LICENSE("GPL");* F5 Q: R" C; j

) O* Z4 F% Y9 q) F$ J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-3 05:30 , Processed in 0.038736 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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