程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
: H: k: ]& N9 g" q  F#include <linux/init.h>. W0 V  ^0 ^! S  O( }! u9 q
#include <linux/module.h>
1 B: z* o, \; i: W#include <linux/kernel.h>
* e9 n1 \0 w" v& ~; E: f: W9 G, [#include <linux/types.h>
" Y. F$ y4 R5 m: C2 ?7 b$ d1 `( D#include <linux/gpio.h>, K: Z* T* t7 K. e1 l7 R
#include <linux/leds.h>+ H' P" M5 n0 _  Y2 }6 S+ {
#include <linux/platform_device.h>$ N9 [9 k4 A5 e6 D
% H8 w; x, A& O8 `
#include <asm/mach-types.h>
+ q. s; F7 H+ o- |#include <asm/mach/arch.h>
6 r! x/ u" O/ _#include <mach/da8xx.h>  e. z# O/ D. f
#include <mach/mux.h>$ q, v4 c5 }. X" c& E! {- a

* p0 P7 D; I7 w" P* `#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)4 d' w( x  T8 @- z
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)( t, N' n1 }9 [9 {0 q# h, b
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
: |* \/ d) @8 a. z#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 R: Y) T' D& R. @6 c+ _$ S/ |. o: ]' ]+ F3 i" z& G
/* assign the tl som board LED-GPIOs*/
. j( _( m2 P' ~5 U7 ystatic const short da850_evm_tl_user_led_pins[] = {
7 |5 E- u' Y. M' j' u- m2 A8 ?5 ?        /* These pins are definition at <mach/mux.h> file */
2 E& y# W5 `1 g! A        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,- u( r& \; u+ p  K7 q; L
        -1( H2 o* Z# v) R# w; @7 r8 w- }/ v0 w
};
9 S! Q1 O+ ^! D- c: s$ e9 C5 T1 e0 @, o( D7 l' Q
static struct gpio_led da850_evm_tl_leds[] = {
5 h1 ?# v3 ~0 [        {
$ D8 K2 |$ S( J1 U: @3 [  L* Z                .active_low = 0,; V0 P2 E+ _/ j; E2 |& [  t3 j
                .gpio = DA850_USER_LED0,# T$ \( Y* A! h; L5 y$ u* I
                .name = "user_led0",, Q9 u9 J+ G2 G; A" Y$ O
                .default_trigger = "default-on",
4 c+ @" P6 M- p$ O! Q4 U; W        },* Q8 {5 o1 Y" ^' D( G4 [( b& ^- j+ q
        {
; D0 @3 n& ?: z" D; |                .active_low = 0,
3 O# B& X. `8 o) O                .gpio = DA850_USER_LED1,. ]4 Y! O9 O: ]. Q! k4 P1 Q
                .name = "user_led1",
5 Y  z# A) ]* g" ^                .default_trigger = "default-on",
  X  A* J* {/ c$ v- t        },( W0 a4 \' ?* I  l6 H) S
        {
* ?3 K3 F( y$ B" |2 w                .active_low = 0,
& s5 z4 D/ W% @8 A; v/ A! E  |                .gpio = DA850_USER_LED2,
& t3 i4 N. g1 F$ p$ g& ^6 D                .name = "user_led2",' \! G7 x( }/ r2 W6 E! U: j
                .default_trigger = "default-on",- |) [, W2 j4 N' ^
        },2 k, b6 \3 [1 y; ]+ {* n
        {4 a$ ~( R  t* n  F2 Z
                .active_low = 0,
  W6 F0 p( F8 Z1 X/ }+ b                .gpio = DA850_USER_LED3,
, ~. j  m6 H- s9 h; v! K- c                .name = "user_led3",* M( |. v3 ^9 V
                .default_trigger = "default-on",# m$ b# N3 q3 ]) t. |* B
        },
3 N5 r* |2 U( j3 Y0 B! B/ t};
. |/ |/ t1 s* R! Y
# x0 m+ |0 w8 h* Z. pstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: f9 I. M7 b  z$ Y! P2 [! ^/ O# `        .leds = da850_evm_tl_leds,5 }( a9 L* i7 }9 Y
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, U. K3 J3 S6 O1 O) h$ v};0 s% E) b1 Y* {
/ v* x: A) f! }" l0 s9 ~! `" b
static void led_dev_release(struct device *dev)
$ E$ e- \- R. f# V* G1 ]{
. G4 x. q7 r1 b# n8 f1 j' s};7 Y. s7 Y: c- {5 n
2 c' j0 k+ Z( y7 }2 F( k
static struct platform_device da850_evm_tl_leds_device = {
- Y+ H, d; f3 o        .name                = "leds-gpio",
! k( q# Y* Z) T        .id                = 1,
  y: g7 j! I% P  p( H" g' Q3 \        .dev = {$ `! C4 _; G/ Z% `
                .platform_data = &da850_evm_tl_leds_pdata,
- }* |) [+ l2 i  h( y0 W7 N/ j% R2 o                .release = led_dev_release,5 \4 O9 T  s1 j
        }
6 b& o8 i" t" i" K: _1 y};0 O' @, s' U. \$ h$ a0 W

( e; S) r0 q5 i# f1 `. sstatic int __init led_platform_init(void)0 ~% \3 Y1 {5 J' T+ o
{; z5 A$ m0 p) P( Q
        int ret;
  z6 W- O; b0 ~/ ~! M" o# }# v#if 01 K1 R2 S3 u3 x3 R% ?
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: y0 ~% g4 G4 w# B- V8 z! u9 ?        if (ret)
* V+ L/ L3 F$ b8 L/ k                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% W/ i% |& Z- m, E7 n$ {                                "%d\n", ret);
% v/ w4 r. o+ p9 e. A6 ?2 W#endif' E/ e  C6 x: R( O2 n( i8 R. L" N
        ret = platform_device_register(&da850_evm_tl_leds_device);
+ v: m, G' {  G1 g* _1 m8 `1 L6 z        if (ret)* i& @  p8 ^. w) p' p
                pr_warning("Could not register som GPIO expander LEDS");
: @- ^" k; p- _" q/ `        else6 A( r8 o9 M, F( z) f$ P9 V
                printk(KERN_INFO "LED register sucessful!\n");
- {/ \$ B, p' n5 z1 W
% g; t. e5 g3 t" A        return ret;
+ _0 d5 `- [# Y; B) t6 A}4 E* h! A& U) t" U

* k  Y$ K5 |* ^& o1 L. dstatic void __exit led_platform_exit(void)
+ V: h) Y, G9 {8 u{
% e! {9 ]* y! [        platform_device_unregister(&da850_evm_tl_leds_device);
2 W' G3 J4 E, c0 B$ c( ?% [  _& v" ~5 u& S- m5 l! e
        printk(KERN_INFO "LED unregister!\n");
8 s/ a: \) Y7 M3 t# H, ~8 a' M3 x. H}9 U) a% y. G  M  o- p' W9 W' \4 l2 b
' I, Q* ]; ~) b( D) t. }) l8 i, C% I
module_init(led_platform_init);
7 h2 H, w# P1 Bmodule_exit(led_platform_exit);. T% N) ^& t! p
  k5 m& x, r5 \9 q
MODULE_DESCRIPTION("Led platform driver");9 f) y) X: g% R. P" R1 q
MODULE_AUTHOR("Tronlong");
8 N$ ~: J/ L5 l- F( o  p  o- j. ^9 ?- NMODULE_LICENSE("GPL");
% S2 y1 E9 j( v' U7 |5 c4 w& y- Q  I. S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-12 04:57 , Processed in 0.039567 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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